gpt4 book ai didi

java - 如何在没有警告的情况下将通用工厂用于通用类型?

转载 作者:行者123 更新时间:2023-11-29 09:22:41 25 4
gpt4 key购买 nike

我有一个像这样的工厂方法

public static <T> Something<T> create(Class<T> clazz) {
return new Something<T>(clazz);
}

采用 Class 参数。当我像在

Something<String> something1 = Something.create(String.class);

一切都很好。但是对于

Something<List> something2 = Something.create(List.class);

我收到一个我无法摆脱的警告。无论我尝试什么,都会收到警告或错误。

除了 @SuppressWarnings("unchecked") 我还能做些什么吗?

其实我想得到

Something<List<?>> something2 = Something.create(List.class);

如果没有两次转换和警告,我无法获得。我正在使用 eclipse 3.5.2。

最佳答案

@SuppressWarnings("unchecked")
static public <A, B extends A> Class<B> rawcast(Class<A> clazz)
{
return (Class<B>)clazz;
}

void test()
{
Class<List<?>> clazz = rawcast(List.class);

Something<List<?>> something2 = Something.create(clazz);
}

关于java - 如何在没有警告的情况下将通用工厂用于通用类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5289488/

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