It would actually be very nice if there was some way to (optionally) prevent 
null being passed into constructors and function calls. There has been more 
than once that I would have liked to have that feature.

I wonder if that’s something we can add to Falcon?

On Nov 16, 2015, at 12:43 PM, Michael Schmalle <teotigraphix...@gmail.com> 
wrote:

> On Mon, Nov 16, 2015 at 5:40 AM, OmPrakash Muppirala <bigosma...@gmail.com>
> wrote:
> 
>> Nope, you can still call new Singleton(null) and the compiler won't say
>> anything :-)
>> The 'enforcer' is required because of this loophole.
>> 
>> 
> Yeah, you're right, to early in the morning.. :)
> 
> 
>> Thanks,
>> Om
>> 
>> On Mon, Nov 16, 2015 at 2:36 AM, Michael Schmalle <
>> teotigraphix...@gmail.com
>>> wrote:
>> 
>>> On Mon, Nov 16, 2015 at 4:14 AM, OmPrakash Muppirala <
>> bigosma...@gmail.com
>>>> 
>>> wrote:
>>> 
>>>> Purely pedantic, but the code does not do anything to 'enforce' the
>>>> singleton-ness of the class.
>>>> 
>>> 
>>> The compiler won't even let you compile this code, so the != is just
>> sauce
>>> that never gets eaten. Since you have to pass an instance of
>>> SingletonEnforcer, it's private and the compiler will bitch.
>>> 
>>> Mike.
>>> 
>>> 
>>>> 
>>>> It should actually be:
>>>> public function Singleton(e:SingletonEnforcer){
>>>>  if(e != null)
>>>>  {
>>>>     trace("new instance of singleton created");
>>>>  }
>>>> }
>>>> 
>>>> On Mon, Nov 16, 2015 at 12:54 AM, yishayw <yishayj...@hotmail.com>
>>> wrote:
>>>> 
>>>>> Actually the comment above 'class SingletonEnforcer' explains it.
>>>>> 
>>>>> package{
>>>>>    public class Singleton{
>>>>>        private static var _instance:Singleton=null;
>>>>>        public function Singleton(e:SingletonEnforcer){
>>>>>            trace("new instance of singleton created");
>>>>>        }
>>>>>        public static function getInstance():Singleton{
>>>>>            if(_instance==null){
>>>>>                _instance=new Singleton(new SingletonEnforcer());
>>>>>            }
>>>>>            return _instance;
>>>>>        }
>>>>>    }
>>>>> }
>>>>> //I’m outside the package so I can only be accessed internally
>>>>> class SingletonEnforcer{
>>>>> //nothing else required here
>>>>> }
>>>>> 
>>>>> 
>>>>> 
>>>>> --
>>>>> View this message in context:
>>>>> 
>>>> 
>>> 
>> http://apache-flex-development.2333347.n4.nabble.com/FlexJS-FalconJX-Internal-Classes-tp50091p50102.html
>>>>> Sent from the Apache Flex Development mailing list archive at
>>> Nabble.com.
>>>>> 
>>>> 
>>> 
>> 

Reply via email to