[英]Set value to primitive type fields
這是我第一次進行反射,遇到以下麻煩。
我有這堂課
public class MyObject {
private String description;
private int number;
private double value;
//Constructor getter and setter
}
現在,我試圖設置MyObject字段的值。
Class c = Class.forName("myPackage.MyObject");
Field [] fields = c.getDeclaredFields();
for(Field field: fields){
if(f.getType().equals(Double.class)){
//Do somethings
}
else if(f.getType().equals(Integer.class)){
//Do somethings
}
else{
//Do somethings
}
}
}
但我永遠無法過濾int和double類型。
我該如何解決?
那是因為Double
不是double
。 試試這個
if(f.getType() == double.class){
//Do somethings
} else if(f.getType() == int.class){
//Do somethings
} else {
//Do somethings
}
向自己證明這一點的簡單方法是
System.out.println(f.getType());
Double.class
引用包裝器類java.lang.Double
。 Double.TYPE
引用原始double
。
同樣,您還具有Integer.TYPE
, Long.TYPE
等。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.