gpt4 book ai didi

java - 如何将通用类型的类对象转换为该类型的特定实例

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

我有一个通用接口(interface),我们称它为GenericInterface<T> .我需要将该接口(interface)的 类对象 传递给一个方法,该方法需要(通过另一个类型参数指定)该类型的特定实例。假设我想调用 java.util.Collections.checkedList() :

List<GenericInterface<Integer>> list = Collections.checkedList(
new ArrayList<GenericInterface<Integer>>(),
GenericInterface.class);

这不起作用,因为 Class<GenericInterface>不能隐式转换为 Class<GenericInterface<Integer>> ,最安全的方法是什么?我能想到的最好的是:

List<GenericInterface<Integer>> list = Collections.checkedList(
new ArrayList<GenericInterface<Integer>>(),
(Class<GenericInterface<Integer>>) (Class<?>) GenericInterface.class);

它有效但不会保护我免受例如将列表的类型更改为 List<SomeOtherInterface>无需将类对象参数替换为 SomeOtherInterface.class .

最佳答案

还有类似的问题:

The short answer is, that there is no way to find out the runtime type of generic type parameters in Java.

关于java - 如何将通用类型的类对象转换为该类型的特定实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16735060/

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