Han*_*cht 10 java generics diamond-operator java-7
import java.util.*;
public class SimpleArrays
{
@SafeVarargs
public static <T> List<T> asList( T... a )
{
return new ArrayList<>( a );
}
}
Run Code Online (Sandbox Code Playgroud)
asList()
取自Oracles JDK实现的java.util.Arrays.
错误是
error: cannot infer type arguments for ArrayList<>
return new ArrayList<>( a );
1 error
Run Code Online (Sandbox Code Playgroud)
这怎么办?Oracle使用与我们相同的编译器.
注意:该ArrayList
在使用java.util.Arrays
类不是java.util.ArrayList
,而是一个嵌套类java.util.Arrays.ArrayList
.
特别是,这个类有一个构造函数,它接受一个没有的T[]
as参数java.util.ArrayList
.
复制这个类,它也可以工作.