通过反射获取String变量的值

asc*_*sco 5 java reflection

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

我用这个得到String变量:

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

    for (Field f : fields) {

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

    }
Run Code Online (Sandbox Code Playgroud)

但我不知道如何获得Field的String值.怎么做?

anu*_*ava 5

您需要致电:

Object val = f.get(this); 
Run Code Online (Sandbox Code Playgroud)

或者获取 String 对象:

String strval = (String) f.get(this); 
Run Code Online (Sandbox Code Playgroud)

获取 f 值表示的字段。

看:Field#Get(Object)

还:Getting and Setting Field Values