gpt4 book ai didi

java - (Java) 静态泛型方法与泛型类静态方法

转载 作者:行者123 更新时间:2023-12-01 06:56:56 26 4
gpt4 key购买 nike

我读过关于为什么你不能在泛型类中使用(编辑-泛型)(使用泛型类中的类型参数)静态方法的文章,但是为什么你可以在泛型类中使用静态泛型方法非泛型类?我不明白为什么允许第二个,但我有点理解为什么第一个不允许。

最佳答案

why you can't have a (Edit -- generic) (which use that type parameter from the generic class) static method in a generic class

原因很简单:类型参数与无关,而是与该类的实例相关联。

也就是说,你不能这样做

class Test<T> {
public static void sayHello(T t) { // T for which instance?!
System.out.println("Hello");
}
}


why can you then use static generic methods in non generic classes?

你为什么不呢?泛型方法采用类型参数,因此它是否是静态的,或者它所在的类是否是泛型的等等都无关紧要。

例如,这个可以很好地编译:

class Test {
public static <T> void sayHello(T t) {
System.out.println("Hello " + t);
}
}

您可以像这样调用该方法:

Test.<String>sayHello("some argument");
^^^^^^^^
type parameter provided at the method-call: no instance required.

关于java - (Java) 静态泛型方法与泛型类静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9762430/

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