There are two ways you can do null checking of Java objects.
The first way, direct from the userguide, is checking of the object Equals null
:
If
#If AA Java object can be directly referenced in a condition. Null-value objects are replaced with text representation
null
.Examples:
If, arr[0][0] eq 45 If, arr[0].length > 3 If, lightlevel Equals null
The problem with this is that the string "null" will also match the condition. In your case, that's not a concern, but my second method provides a way that can distinguish between the two for other cases.
The second way takes advantage of Tasker's built-in error checking. If you have an object and need to check whether or not it's null:
- Use a Java Function action. For "Object or Class", use the object in question, then for "Function" select "toString {String} ()"*. Lastly, make sure "Continue Task After Error" is checked. You don't need a return value here.
- Follow the Function with an If action, which tests if the variable
%err
is set (or isn't set). - If
%err
is set, the object is null. Otherwise, it's not null.
%err
will not be set if the object is the string "null", because "null".toString()
is perfectly valid code.
* If your only option in the Function list is "assign {...} ()", then you're working with a primitive type - a number, boolean, or character. Those can't be null, so checking is unnecessary.