Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static void main(String[] args) throws Exception {
- Boolean b = true ? returnsNull() : false; // NPE on this line.
- System.out.println(b);
- }
- public static Boolean returnsNull() {
- return null;
- }
- public static void main(String[] args) throws Exception {
- Boolean b = true ? null : false;
- System.out.println(b); // null
- }
- E1: `true ? returnsNull() : false` - boolean (auto-unboxing 2nd operand to boolean)
- E2: `true ? null : false` - Boolean (autoboxing of 3rd operand to Boolean)
- Boolean b = true ? returnsNull() : false;
- Boolean b = true ? returnsNull().booleanValue() : false;
- Boolean b = (Boolean) true ? true : false;
- public static void main(java.lang.String[]) throws java.lang.Exception;
- descriptor: ([Ljava/lang/String;)V
- flags: ACC_PUBLIC, ACC_STATIC
- Code:
- stack=2, locals=2, args_size=1
- 0: invokestatic #2 // Method returnsNull:()Ljava/lang/Boolean;
- 3: invokevirtual #3 // Method java/lang/Boolean.booleanValue:()Z
- 6: invokestatic #4 // Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean;
- 9: astore_1
- 10: getstatic #5 // Field java/lang/System.out:Ljava/io/PrintStream;
- 13: aload_1
- 14: invokevirtual #6 // Method java/io/PrintStream.println:(Ljava/lang/Object;)V
- 17: return
- LineNumberTable:
- line 3: 0
- line 4: 10
- line 5: 17
- Exceptions:
- throws java.lang.Exception
- public static java.lang.Boolean returnsNull();
- descriptor: ()Ljava/lang/Boolean;
- flags: ACC_PUBLIC, ACC_STATIC
- Code:
- stack=1, locals=0, args_size=0
- 0: aconst_null
- 1: areturn
- LineNumberTable:
- line 8: 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement