在C#中,以下内容有效:
public class X {
public void F<T>(T t) {}
}
并且做:
var x = new X();
x.F(2);
这在Java中是不可能的。
我知道泛型在两种语言中的工作方式都不同,但我仍然想知道......
有充分的理由吗?
答案 0 :(得分:5)
语法不同:
public class X {
public <T> void F(T t) {}
}
答案 1 :(得分:3)
您知道在Java中的非泛型类中可以使用泛型方法。
看起来像这样 -
public class Test {
public <T> void func(T t) {
// do something.
}
}
你何时调用它,test.func(2),2被自动装箱到一个Integer对象
编辑:要回答你的问题,无论你提出什么问题都可以在Java中完成。
答案 2 :(得分:3)
您可以,只需移动您的通用声明。
public <T> void F(T t){}