Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 与模板化不兼容的类型问题_Java_Generics_Java 8 - Fatal编程技术网

Java 与模板化不兼容的类型问题

Java 与模板化不兼容的类型问题,java,generics,java-8,Java,Generics,Java 8,我陷入了模板化问题。代码在我的办公室电脑上运行良好,但在我的个人笔记本电脑上不起作用 代码: public <T> List<T> convert(List<String> values, Class<T> expectedClass) { if (expectedClass == String.class) { return values; } } 公共列表转换(列表值,类expected

我陷入了模板化问题。代码在我的办公室电脑上运行良好,但在我的个人笔记本电脑上不起作用

代码:

public <T> List<T> convert(List<String> values, Class<T> expectedClass) {
        if (expectedClass == String.class) {
            return values;
        }
}
公共列表转换(列表值,类expectedClass){
if(expectedClass==String.class){
返回值;
}
}
此代码显示此错误:

Incompatible Types.
     Required: List<T>
     Found: List<java.lang.String>
不兼容的类型。
必填项:列表
找到:列表
我不明白为什么这个代码在我的办公室电脑上工作,而不是在我的个人笔记本电脑上。
谁能帮帮我吗

我确信这在你的工作机器上也不起作用。原因有两个:由于泛型的不变性;
列表
列表
在形式、形状上都不相同

您还缺少一个返回语句。但这只是泛型问题中的一个小细节

如前所述,唯一可行的方法是通过某种过程将
字符串
转换为未绑定类型,但我不确定如何在没有大量
instanceof
语句的情况下制作一个

从这里的推断,很难说你打算在这里做什么。也许您试图将
列表
转换为更通用的内容,但从概念角度看,这听起来不可行


我鼓励您重新考虑这种方法的设计,因为它已经过时,而且在概念上存在缺陷。

您确定它在办公室有效吗?未压缩的返回值应始终无法编译。if语句之后缺少return语句应该总是无法编译。“模板化”是一个误导性的术语。Java没有模板。