gpt4 book ai didi

java - 指定类对象的类型

转载 作者:搜寻专家 更新时间:2023-11-01 03:02:27 25 4
gpt4 key购买 nike

以下代码调用 Camel Exchange 上的 setProperty 方法

List<Message> list = oldExchange.getProperty("p",List.class);

我的目的是检索一个 List我之前针对 Exchange 存储的对象实例。

就此代码而言,我收到编译器警告(类型安全:类型 List 的表达式需要未经检查的转换以符合 List )。

我知道我可以通过添加 @SuppressWarnings("unchecked") 来解决这个问题注释,但有没有一种方法可以通过更改 List.class 的声明来修复它?

getProperty方法具有以下签名 <T> T getProperty(String name, Class<T> type)

最佳答案

不幸的是,这无法完成 - 没有泛型类型的类文字表达式。

如果您的代码中有很多这样的调用,您可能需要创建一个实用方法来仅在一个地方抑制警告:

@SuppressWarnings("unchecked")
static <T> T myGetProperty(String name, Class<?> type) {
return (T) getProperty(name, type);
}

然后这个调用没有警告:

List<String> listOfStrings = myGetProperty("a", List.class);

但是,您需要记住它确实未选中,因此您不能确定列表的元素是字符串。

关于java - 指定类对象的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32393023/

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