gpt4 book ai didi

java - 编译器如何推断无参数方法的类型?

转载 作者:行者123 更新时间:2023-11-29 03:36:49 25 4
gpt4 key购买 nike

来自 Effective Java:

One noteworthy feature of generic methods is that you needn’t specify the value of the type parameter explicitly as you must when invoking generic con- structors. The compiler figures out the value of the type parameters by examining the types of the method arguments.

那么如果方法不带参数,编译器如何推断类型?

例如考虑下面的静态工厂方法,每次调用它时都会创建一个新的 HashMap :

// Generic static factory method
public static <K,V> HashMap<K,V> newHashMap() {
return new HashMap<K,V>();
}

当方法被调用时:

Map<String,String> pair = newHashMap(); //it returns a Map<String,String>

当它调用时

Map<String, List<String>> anagrams =newHashMap(); // it returns a Map<String,List<String>

最佳答案

它根据返回的变量类型推断它也是赋值的。

public class GenericTest {

public static void main(final String[] args) {
final GenericTest test = new GenericTest();
String data = test.echo();
}

public <T> T echo() {
return null;
}
}

在上面的代码示例中,编译器根据 data 字段的类型推断泛型参数类型,在本例中为 String

关于java - 编译器如何推断无参数方法的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15070125/

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