这是我第一次使用反射技术,我遇到了以下问题。
我有这门课
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
}
}
}但我不能过滤整型和双型。
我怎么才能修好它?
发布于 2014-05-08 10:04:28
这是因为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());发布于 2014-05-08 10:05:03
Double.class引用包装类java.lang.Double。原语double由Double.TYPE引用。
类似地,您还拥有Integer.TYPE、Long.TYPE等。
https://stackoverflow.com/questions/23538606
复制相似问题