[英]boolean.isInstance(true) is false?
問題
布爾字段的類對象不會將其他布爾值識別為實例。
碼
public class Test {
public boolean b;
public static void main(String[] args) {
System.out.println(Test.class.getFields()[0].getType().isInstance(true));
}
}
結果
false
方法是isInstance(Object)所以
x.isInstance(true)
是相同的
x.isInstance(Boolean.TRUE);
和Boolean.class不是boolean.class的子類。
注意:基元沒有getClass()
方法或任何方法。 當您可以將它用作對象時,它已被裝箱。
來自Class#isInstance(Object obj)
文檔
...如果此Class對象表示基本類型,則此方法返回false。
請注意,期望的參數始終是Object
,這意味着它將始終是某個類的實例(不包括基本類型)。
即使你在這里傳遞原始類型,它也會被自動裝箱到它的包裝類,但是這樣的包裝類與由Class
表示的基本類型不同,在你的情況下由getType()
返回。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.