所以我从另一个使用反射的类中得到一个我知道是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;
}
答案 0 :(得分:3)
因此,field
是java.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);