在我的实用方法中:
public static <T> T getField(Object obj, Class c, String fieldName) {
try {
Field field = c.getDeclaredField(fieldName);
field.setAccessible(true);
return (T) field.get(obj);
} catch (Exception e) {
e.printStackTrace();
fail();
return null;
}
}
线
return (T) field.get(obj);
给出警告“类型安全:未经检查的从对象到 T 的转换”; 但我无法对类型参数 T 执行 instanceof 检查, 那我应该在这里做什么?
最佳答案
注释@SuppressWarnings 将停止编译器报告此警告。当像这样使用反射时,我不认为有任何方法可以摆脱编译器警告。类似于以下内容:
Field field = c.getDeclaredField(fieldName);
field.setAccessible(true);
@SuppressWarnings(value="unchecked")
T t = (T) field.get(obj);
return t;
关于java - 使用泛型的 JUnit 测试中的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2498015/