参考までにバイトコードはこちら
class Test {
Test();
Code:
0: aload_0
1: invokespecial #1 // Method java/lang/Object."<init>":
4: return
java.lang.Object foo();
Code:
0: ldc #2 // String
2: areturn
boolean bar();
Code:
0: aload_0
1: invokevirtual #3 // Method foo:()Ljava/lang/Object;
4: iconst_1
5: invokestatic #4 // Method java/lang/Boolean.valueOf:
8: if_acmpne 15
11: iconst_1
12: goto 16
15: iconst_0
16: ireturn
}
でコンパイル
java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)
String
返されたをボックス化されていない に変換しているようBoolean
です。