Skip to main content
Commonmark migration
Source Link

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:

  1. 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.
  2. Follow the Function with an If action, which tests if the variable %err is set (or isn't set).
  3. 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.

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 A 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:

  1. 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.
  2. Follow the Function with an If action, which tests if the variable %err is set (or isn't set).
  3. 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.

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

A 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:

  1. 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.
  2. Follow the Function with an If action, which tests if the variable %err is set (or isn't set).
  3. 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.

Added note about primitive types
Source Link

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 A 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:

  1. 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.
  2. Follow the Function with an If action, which tests if the variable %err is set (or isn't set).
  3. 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.

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 A 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:

  1. 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.
  2. Follow the Function with an If action, which tests if the variable %err is set (or isn't set).
  3. 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.

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 A 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:

  1. 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.
  2. Follow the Function with an If action, which tests if the variable %err is set (or isn't set).
  3. 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.

Source Link

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 A 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:

  1. 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.
  2. Follow the Function with an If action, which tests if the variable %err is set (or isn't set).
  3. 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.