如何实施<> Java 7与Java 6的运算符功能

时间:2017-03-27 07:36:14

标签: java generics

我们知道类型为earer,泛型是有耳朵的,我们在编译代码中只有Object类型。

我想了解如何在java 7中实现菱形运算符。

1 个答案:

答案 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);