gpt4 book ai didi

java - 使用泛型的 JUnit 测试中的问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:04:10 25 4
gpt4 key购买 nike

在我的实用方法中:

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com