Java是否根据结果假定类型?

Java中有一段代码:

import java.util.HashMap;
import java.util.Collection;
import java.util.Map;

public class Main {
  public static void main(String[] args) {
    Map<Integer, String> langMap = new HashMap<>();
    langMap.put(1, "Java");
    langMap.put(2, "C#");
    Collection<String> values = langMap.values();
  }
}

在最后一行代码中有Collection<String>. 不是<String>不必要的,因为类型是基于从 langMap 分配的值假设的吗?

回答

不是没有 <String> 必要

不,这是必要的:没有<String>,变量的类型将是Collection,这是一个原始类型。不要使用原始类型。

我想 Java 可以有这样的上下文的符号Collection<>,类似于菱形符号,但它没有。

您要么必须使用Collection<String>,要么使用var支持它的语言版本(11 及更高版本)。


以上是Java是否根据结果假定类型?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>