gpt4 book ai didi

Java : Is generic method only with static?

转载 作者:搜寻专家 更新时间:2023-10-31 19:48:08 25 4
gpt4 key购买 nike

我想知道我们是否仅在方法是静态时才使用泛型方法?对于非静态,您将定义一个通用类,并且您不一定需要它是通用方法。对吗?

例如,

  public class Example<E>{

//this is suffice with no compiler error
public void doSomething(E [] arr){
for(E item : arr){
System.out.println(item);
}
}

//this wouldn't be wrong, but is it necessary ?
public <E> doSomething(E [] arr){
for(E item : arr){
System.out.println(item);
}
}
}

而如果它是静态的,编译器将强制添加类型参数以使其成为泛型方法。

  public static <E> doSomething(E [] arr){


}

不知道我说的对不对

最佳答案

public class Example<E>{

为实例的方法和字段定义一个通用类型。

public void <E> doSomething(E [] arr){

这定义了第二个 E,它与第一个不同,可能会造成混淆。

注意:仍然需要 void ;)

静态字段和方法不使用类的通用类型。

public static <F> doSomething(F [] arr) { }

private static final List<E> list = new ArrayList<>(); // will not compile.

关于Java : Is generic method only with static?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11885453/

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