C# 为什么可以';我们在非泛型类中没有泛型方法吗?
在C#中,以下内容有效:C# 为什么可以';我们在非泛型类中没有泛型方法吗?,c#,java,generics,C#,Java,Generics,在C#中,以下内容有效: public class X { public void F<T>(T t) {} } 这在Java中是不可能的 我知道泛型在两种语言中的工作方式不同,但我仍然想知道 有什么好的理由吗?语法不同: public class X { public <T> void F(T t) {} } 公共类X{ 公共空间F(T){} } 您可以在Java中的非泛型类中使用泛型方法 看起来是这样的-- 公共类测试{ 公共无效函数(T){ //
public class X {
public void F<T>(T t) {}
}
这在Java中是不可能的
我知道泛型在两种语言中的工作方式不同,但我仍然想知道
有什么好的理由吗?语法不同:
public class X {
public <T> void F(T t) {}
}
公共类X{
公共空间F(T){}
}
您可以在Java中的非泛型类中使用泛型方法
看起来是这样的--
公共类测试{
公共无效函数(T){
//做点什么。
}
}
当您调用它test.func(2)时,2会自动装箱到整数对象中
编辑:要回答您的问题,无论您问什么,在Java中都是完全可能的。您可以,只需移动您的泛型声明
public <T> void F(T t){}
public void F(T T){
谢谢您的回答@马特斯和@Kal也正确(两人都投了赞成票),但你是第一个:)谢谢。顺便说一句,我认为我们不应该鼓励发布已经存在的答案(和问题)。同意。看看我刚才问的问题:我们可以。你的语法不正确,仅此而已。
public class Test {
public <T> void func(T t) {
// do something.
}
}
public <T> void F(T t){}