Why can’t the Java 7 and eclipse 3.8 compilers compile JDK code with the new Java 7 Diamond operator?
•
Java
import java.util.*;
import java.util.*;
public class SimpleArrays
{
@SafeVarargs
public static <T> List<T> asList( T... a )
{
return new ArrayList<>( a );
}
}
Aslist() is taken from Java util. Oracle JDK implementation of arrays
The mistake is
error: cannot infer type arguments for ArrayList<>
return new ArrayList<>( a );
1 error
How can this work? Oracle uses the same compiler as ours
Solution
Note: Java util. The ArrayList used in the arrays class is not Java util. ArrayList, but nested class java util. Arrays. ArrayList.
In particular, this class has a constructor that takes t [] as a parameter, which Java util. ArrayList does not
Copying this class also works
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
二维码
