java - 为什么这会在 Java 中编译?

标签 java generics

为什么会这样编译?

B 在 A 中使用,没有任何通用参数,并且是用 Java 编译的。这是怎么回事?

interface B<T>
{
    public T Foo(T value);
}

public class A
{
    public B What()
    {
        return null;
    }

    public void Foo()
    {
        B x = What();
        x.Foo(123);
    }
}

最佳答案

这是为了与 J2SE 5.0 之前的 Java 兼容。您应该收到原始类型警告(注意编译器警告)。

关于java - 为什么这会在 Java 中编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17266428/

相关文章:

java - Tomcat7 : Issue with multiple path in shared. 加载程序

java - 为什么将我的各方面以其原始设置执行,而不是打包成一个单独的jar并从其他地方调用来执行?

java - 将非泛型方法转换为泛型方法

c# - 方法组中泛型调用的 RealProxy Invoke Message 中的 TargetException

c# - 将一个泛型参数约束为另一个的子类型

java - 公共(public)类 Extra<BASE> 扩展 BASE

java - 从java中的类型创建ArrayList

java - 为 JFileChooser 上的选定文件设置自己的文件图标

原生 C 和 Fortran 代码的 Java 内存泄漏

ios - 将 ViewController 与 swift 中的类型进行比较