Defining a Live Template for Null-Check

March 11th, 2006 by Alexandra Rusina

Note   This tip&trick was contributed by both Bas Leijdekkers and Etienne Studer.



The Live Templates provided by IntelliJ IDEA are very convenient while programming, due to their smart and context-aware behavior. On top of the predefined Live Templates, one can add custom Live Templates. For example, you can add a Live Template that creates the code to check a variable for null, intelligently suggesting all non-primitive variables in scope as candidates.

1.   Open IDE Settings | Live Templates, and click the Add button.
2.   Specify the fields as shown on the screenshot below.

  Defining Live Template

This particular example throws NPE if the expression is null. If you want just to create a conditional statement, you can write the following template text:

  if($EXPR$==null) {$END$;}

  In this case, the caret will be simply placed inside the if block.

3.   Now it is necessary to specify the meaning of the “EXPR” variable. Click Edit variables and specify values as shown below.

  Edit template variable

Once the custom Live Template is defined, you can type its abbreviation (ncheck) in your Java code, and then press Tab. IntelliJ IDEA will fill in the null-check, allowing you to choose from all objects and variables in scope.

For example, if you want to check constructor parameters for null, it will look like shown below.

Use Template

9 Responses to “Defining a Live Template for Null-Check”

  1. Chris Mathews Says:

    I know it isn’t the point of the example… but I find it amusing that the NullPointer check is itself a victim of a NullPointer (o.toString() will always result in an NPE in your example). :)

  2. Alexandra Rusina Says:

    Ooops…
    Corrected. Thanks for the comment.

  3. Corby Page Says:

    Another Cool Live Template Example here:

    http://tinyurl.com/q3wde

  4. Sandy McArthur Says:

    It’s not really a NullPointerException until an attempt to dereference null has been made. Until then it’s an IllegalArgumentException.

  5. martin xus Says:

    IDEA’s blog

    TrackBack From:http://www.blogjava.net/martinx/archive/2006/03/14/35302.html

  6. Eugene Vigdorchik Says:

    Notice that in Demetra we’ll have an option to insert such guard code for checking null values to be passed to @NotNull parameter or null returned by @NotNull method automatically during compilation process.

  7. Bounded beans in IntelliJ IDEA | Spackos62-Java Blog Says:

    [...] create a new Live Template and set the name to something like “fpc”. The template [...]

  8. Get Better At: IntelliJ IDEA | On Technology and Tea « Matthew Morten Says:

    [...] create you’re own templates, I would recommend you take a look at this Jetbrains blog post describing how to create a null-check [...]

  9. Stijn Says:

    This is one I wrote:

    org.apache.commons.lang.Validate.notNull($EXPR$, “Method called with null parameter ($EXPR$)”);

Leave a Reply