gpt4 book ai didi

java - Java 泛型和原始非参数化类型的混淆编译错误

转载 作者:行者123 更新时间:2023-12-02 05:04:33 28 4
gpt4 key购买 nike

我在使用泛型时遇到了有点违反直觉的编译器错误。我不明白的是为什么在这里使用原始类型会导致这样的失败。还有其他人经历过这种情况吗?

public class Test {

public static void main() {

// works
Alpha<Void> a1 = null;
a1.alpha().endBeta().endAlpha();

// compile error: cannot find symbol 'endAlpha()'
Alpha a2 = null;
a2.alpha().endBeta().endAlpha();
}

interface Alpha<T> {
Beta<Alpha<T>> alpha();

T endAlpha();
}

interface Beta<T> {
T endBeta();
}
}

最佳答案

当您拥有原始类型的引用时,当您调用该对象上的方法或使用字段时,所有泛型都会被忽略

这是您不应在新代码中使用原始类型的众多原因之一。

关于java - Java 泛型和原始非参数化类型的混淆编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27915522/

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