【发布时间】:2011-11-22 14:13:54
【问题描述】:
我有
Field f = this.getClass().getFields()[0];
我需要知道f 在this 中的值是否为null。 getInt()和getDouble()这样的方法有很多,但是我没有找到像Object getData()或者isNull()这样的方法。有这样的方法吗?
【问题讨论】:
标签: java reflection null field
我有
Field f = this.getClass().getFields()[0];
我需要知道f 在this 中的值是否为null。 getInt()和getDouble()这样的方法有很多,但是我没有找到像Object getData()或者isNull()这样的方法。有这样的方法吗?
【问题讨论】:
标签: java reflection null field
field.get(target) 返回Object。所以你可以检查if (field.get(this) == null) {..}
如果字段是原始的,它将被包装。 int -> Integer、char -> Character等
【讨论】:
target 是该字段所属的对象。例如:SomeClass object = new SomeClass(); Field field = object.getDelcaredField("fieldName"); field.get(object);所以在这种情况下,object 是上面的目标Bozho。
你需要从对象中获取字段然后检查它是否为空
Field f = this.getClass().getFields()[0];
if (f.get(this) == null)
...
【讨论】:
你搜索的不够好:http://download.oracle.com/javase/6/docs/api/java/lang/reflect/Field.html#get%28java.lang.Object%29
调用该方法,检查返回的对象是否为null。
【讨论】:
使用Object obj=f.get(this)并检查返回的对象(在本例中为obj)是否为空
【讨论】: