我们知道类型为earer,泛型是有耳朵的,我们在编译代码中只有Object类型。
我想了解如何在java 7中实现菱形运算符。
答案 0 :(得分:0)
菱形运算符是编译器功能。即您必须查看javac
了解详细信息。所有发生的事情是编译器可以在某些情况下为您推断出泛型类型。比方说,它适用于List<String> = new ArrayList<>()
。另一方面,它不适用于匿名内部类。
您将获得与没有菱形运算符相同的完全字节代码。你可以说这是syntactic sugar。
那么,如何在java 6中实现它?不幸的是,你不。 java中没有运算符重载。
你可以写一些包装,但我不认为这是值得的:
public static <T> List<T> createArrayList(Class<T> typeClass) {
return new ArrayList<T>();
}
List<String> list = createArrayList(String.class);