当我需要创建一个需要存储字符串的 ArrayList 时,我这样做 -
ArrayList<String> whatwhat = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)
在 Eclipse 中,当我<String>从上述语句的左侧或右侧省略时,我会收到警告。这让我想到了我的问题:为什么 Java 需要/允许这样做?难道我们不应该被要求只在一侧声明一个泛型类型吗?
对于 Java 6 及之前版本,需要在两面输入内容。
但是,从 Java 7 开始,您可以在右侧使用“菱形运算符”、空尖括号<>,编译器将根据左侧的类型参数推断类型。
ArrayList<String> whatwhat = new ArrayList<>(); // Java 7+
Run Code Online (Sandbox Code Playgroud)