5

我有一个带有大量字符串的 POJO,我想要一个简单的方法来检查它们是否都是空的/是否包含某个字符/什么。

我用这个得到字符串变量:

    Field[] fields = this.getClass().getDeclaredFields();

    for (Field f : fields) {

        if (f.getType() == java.lang.String.class) {
            Log.d("REF", "Field: " + f.getName());
        }

    }

但我不知道如何获取字段的字符串值。它是如何完成的?

4

3 回答 3

4

您需要致电:

Object val = f.get(this); 

或获取字符串对象:

String strval = (String) f.get(this); 

获取由 f 的值表示的字段。

看:Field#Get(Object)

还:Getting and Setting Field Values

于 2013-06-28T09:04:43.747 回答
2

您可以尝试此代码来获取值:

for (Field f : fields) {
   if (f.getType() == java.lang.String.class) {
        Log.d("REF", "Field: " + f.getName());
        String s = (String)f.get(this);
   }
}
于 2013-06-28T09:05:34.613 回答
1

对于任何对象,您都应该使用Field#get(Object)方法。因为 String 是 java 中的一个对象,因此:

        String str = (String)f.get(this);
于 2013-06-28T09:06:36.540 回答