Adrian Crum wrote:
> Adam Heath wrote:
>> Adrian Crum wrote:
>>> FlexibleStringExpander fse =
>>> FlexibleStringExpander.getInstance("someExpression");
>>> if (fse != null) {
>>> // some code
>>> }
>>
>> This was always broken. Type foo = new Type(); foo will *never* be
>> null, period. There are existing places in the code where this new
>> Type() compared to null takes place, unrelated to FSE.
>
> I was trying to provide a simplified example. You are correct - the
> simplified example would never work to begin with. What the simplified
> example might really look like:
>
> protected FlexibleStringExpander description = null;
Just for reference, the correct fix here would remove the null default
value, make it final, and remove the condition check below.
> ...
> public MyClass(String expression) {
> if (expression != null) {
> description = FlexibleStringExpander.getInstance(expression);
> }
> }
> ...
> public String getDescription(Map context) {
> if (description != null) {
> return description.expandString(context);
> }
> ...
> }
>
> -Adrian
>