Foo.class和Foo.class.getClass為什么不等
請(qǐng)問(wèn):
Class f1 = Foo.class;
Class f4 = f1.getClass();
System.out.println(f1==f4);
它倆為什么不等?
感覺(jué)上好像f1是f4的爹的感覺(jué)(不是繼承關(guān)系),這種理解對(duì)嗎?
請(qǐng)問(wèn):
Class f1 = Foo.class;
Class f4 = f1.getClass();
System.out.println(f1==f4);
它倆為什么不等?
感覺(jué)上好像f1是f4的爹的感覺(jué)(不是繼承關(guān)系),這種理解對(duì)嗎?
2016-02-05
舉報(bào)
2016-02-10
測(cè)試代碼如下。
控制臺(tái)輸出結(jié)果如下
2016-04-23
Class的實(shí)例對(duì)象都不一樣的.第二個(gè)是Class類調(diào)用getClass,第一個(gè)是Foo類調(diào)用getClass方法,對(duì)象不一樣吧
2016-02-17
謝謝,明白了
2016-02-11
這里f1是Class類的實(shí)例對(duì)象(也就是Foo這個(gè)類,它是Class類的對(duì)象);
你使用f1.getClass()獲得的是Class這個(gè)大類,不是上面Foo這個(gè)類,所以當(dāng)然不相等。
如果你定義了Foo foo =new Foo() (這里foo是Foo的實(shí)例),
再調(diào)用foo.getClass()便能獲得Foo了。
2016-02-06
f1 與 f4的引用不是指向同一個(gè)對(duì)象 肯定為false,??? 通過(guò)反射方式1 ? Class c = (類名)Foo.class;
反射方式2? 首先實(shí)例化Foo對(duì)象? Foo f = new Foo();? 然后 Class c2 = (對(duì)象名)f.getClass();?? 這樣 c 和 c2 的引用指向同一對(duì)象(Foo)?? c 和 c2 的比較為true。。。