import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.Nullable; import java.lang.*; import java.lang.AssertionError; import java.lang.IllegalArgumentException; class AssertIsNotNull { void bar(String s, String s1) { if (s == null && trimIfNotNull(s) != null) { throw new AssertionError(); } final Object o = call(); assertIsNotNull(o); System.out.println(o.toString()); if(o == null) {} if (trimIfNotNull(s1) != null) { System.out.println(s1.charAt(0)); if (s1 == null) { } } } @Contract("null -> fail") static void assertIsNotNull(Object o) { if (o == null) { throw new IllegalArgumentException(); } } @Contract("null -> null; !null -> !null") @Nullable static String trimIfNotNull(@Nullable String s) { if (s == null) { return null; } return s.trim(); } Object call() {return new Object();} @Contract("a") void malformedContract() {} @Contract("null -> _") void wrongParameterCount(Object a, boolean b) {} @Contract(pure=true) void voidPureMethod() {} }