import org.jetbrains.annotations.NotNull; import javax.swing.*; class Test { public void setObj(Object obj) { this.obj = obj; } public void test() { obj = new Object(); SwingUtilities.invokeLater(new Runnable() { public void run() { Object o = obj; if (o != null) { System.out.println("x"); } } }); obj = null; } @NotNull private volatile Object obj; }