Advertisement
Guest User

Untitled

a guest
Jun 26th, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.84 KB | None | 0 0
  1. public static void main(String[] args) throws Exception {
  2. Boolean b = true ? returnsNull() : false; // NPE on this line.
  3. System.out.println(b);
  4. }
  5.  
  6. public static Boolean returnsNull() {
  7. return null;
  8. }
  9.  
  10. public static void main(String[] args) throws Exception {
  11. Boolean b = true ? null : false;
  12. System.out.println(b); // null
  13. }
  14.  
  15. E1: `true ? returnsNull() : false` - boolean (auto-unboxing 2nd operand to boolean)
  16.  
  17. E2: `true ? null : false` - Boolean (autoboxing of 3rd operand to Boolean)
  18.  
  19. Boolean b = true ? returnsNull() : false;
  20.  
  21. Boolean b = true ? returnsNull().booleanValue() : false;
  22.  
  23. Boolean b = (Boolean) true ? true : false;
  24.  
  25. public static void main(java.lang.String[]) throws java.lang.Exception;
  26. descriptor: ([Ljava/lang/String;)V
  27. flags: ACC_PUBLIC, ACC_STATIC
  28. Code:
  29. stack=2, locals=2, args_size=1
  30. 0: invokestatic #2 // Method returnsNull:()Ljava/lang/Boolean;
  31. 3: invokevirtual #3 // Method java/lang/Boolean.booleanValue:()Z
  32. 6: invokestatic #4 // Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean;
  33. 9: astore_1
  34. 10: getstatic #5 // Field java/lang/System.out:Ljava/io/PrintStream;
  35. 13: aload_1
  36. 14: invokevirtual #6 // Method java/io/PrintStream.println:(Ljava/lang/Object;)V
  37. 17: return
  38. LineNumberTable:
  39. line 3: 0
  40. line 4: 10
  41. line 5: 17
  42. Exceptions:
  43. throws java.lang.Exception
  44.  
  45. public static java.lang.Boolean returnsNull();
  46. descriptor: ()Ljava/lang/Boolean;
  47. flags: ACC_PUBLIC, ACC_STATIC
  48. Code:
  49. stack=1, locals=0, args_size=0
  50. 0: aconst_null
  51. 1: areturn
  52. LineNumberTable:
  53. line 8: 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement