gpt4 book ai didi

java - 调用接受 Class 并返回 T 的泛型方法时,如何返回特定类型的列表?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:21:55 24 4
gpt4 key购买 nike

我正在使用这个签名从一个库中调用一个方法:

public <T> T get(Class<T> c)

我想要一个 List<MyClass>作为返回值。但是这样调用它不会编译(“无法从参数化类型中选择”):

List<MyClass> myClasses = get(List<MyClass>.class);

这会编译,但会给出警告:

List<MyClass> myClasses = get(List.class);

警告说“未经检查的分配”。我怎样才能避免此警告并避免转换我的名单?

最佳答案

您在这里使用的是泛型,因此列表中项目的基础类型在运行时已被删除,编译器知道它无法在编译时为您检查它,因此出现警告。如果您在这里使用通用类型,您将无法避免警告。如果您确定您正在执行的转换不会导致异常,则可以抑制它。

@SuppressWarnings("unchecked")

关于java - 调用接受 Class<T> 并返回 T 的泛型方法时,如何返回特定类型的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16530161/

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