将String转换为使用反射获得的值

时间:2018-08-03 11:30:39

标签: java reflection java-8

所以我从另一个使用反射的类中得到一个我知道是String的值,但是当我尝试将其转换为String时,抛出ClassCastException,因为String无法转换为字段。有人可以帮我吗?

public static void main(String[] args) throws NoSuchFieldException {
    Utils utils = new Utils();
    Field field = utils.getClass().getDeclaredField("myString");
    field.setAccessible(true);
    String myString = (String) field;
}

3 个答案:

答案 0 :(得分:3)

因此,fieldjava.lang.reflect.Field的对象。因此,您不能将其强制转换为String。您需要从utils获取字符串对象。为此,您应该使用Field#get()方法,该方法以object(在您的情况下为utils)作为参数。

String myString = (String) field.get(utils);

答案 1 :(得分:2)

String myString = (String) field.get(utils);

答案 2 :(得分:0)

使用Select distinct(price) from table order by price limit 1 offset 1; 代替(String) field.get(utils);