gpt4 book ai didi

java - 警告 : Type safety: Unchecked cast from Object to PK

转载 作者:行者123 更新时间:2023-12-01 15:23:01 24 4
gpt4 key购买 nike

如何删除“id = (PK) m.invoke(obj, (Object []) null);”中的警告

    private PK getId(T obj) {
PK id = null;
for (Field f : type.getDeclaredFields()) {
if (f.getAnnotation(Id.class) != null) {
String name = f.getName();
String method = "get" + name.substring(0, 1).toUpperCase() + name.substring(1);
try {
Method m = type.getDeclaredMethod(method, (Class<?>) null);
id = (PK) m.invoke(obj, (Object []) null);
} catch (Exception e) {
e.printStackTrace();
}
}
}
return id;
}

最佳答案

我假设 PK 是你的类中的通用类型

class MyClass<PK> {

由于 Java 类型删除,类型 PK 在运行时不可用。但是如果你在你的构造函数中接受 Class<PK>例如,那么您可以通过调用 klass.cast(...) 来解决这个问题

class MyClass<PK> {
private final Class<PK> keyClass;
MyClass(Class<PK> keyClass) {
this.keyClass = keyClass;
}

PK getKey() {
return keyClass.cast(...);
}
}

如果出于某种原因您无法获得对 PK 的实际运行时类型的引用,那么您除了抑制警告之外别无选择。

关于java - 警告 : Type safety: Unchecked cast from Object to PK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10588075/

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