为什么可以';我们在非泛型类中有泛型方法

本文关键字:泛型类 泛型方法 我们 为什么 | 更新日期: 2023-09-27 17:59:38

在C#中,以下内容有效:

public class X {
    public void F<T>(T t) {}
}

并执行:

var x = new X();
x.F(2);

而这在Java中是不可能的。

我知道泛型在两种语言中的作用不同,但我仍然想知道。。。

这有充分的理由吗

为什么可以';我们在非泛型类中有泛型方法

语法不同:

public class X {
    public <T> void F(T t) {}
}

只是为了让您知道Java中的非泛型类中可以有泛型方法。

它看起来是这样的——

public class Test {
        public <T> void func(T t) {
    // do something.
            }
}

你什么时候调用它,test.func(2),2被自动装箱到Integer对象中

编辑:为了回答你的问题,无论你问什么,在Java中都是完全可能的。

您可以移动泛型声明。

public <T> void F(T t){}