Essayez de compiler le code suivant dans JDK7:JDK7: Diamond syntaxe d'inférence confusion
import java.nio.file.*;
public final class _DiamondSyntaxErrors {
public interface InterfaceA<T> {
}
public abstract static class ClassA<T>
implements InterfaceA<T> {
protected ClassA() {
}
}
public static void main(String... args) {
// no error
InterfaceA<Path> classA = new ClassA<>() {
};
// error: cannot infer type arguments for SimpleFileVisitor<>
FileVisitor<Path> visitor = new SimpleFileVisitor<>() {
};
}
}
Pourquoi pas la seconde utilisation du travail de syntaxe de diamant?
Quelle est la grande différence avec la première utilisation?
Margus, il utilise une nouvelle fonctionnalité [prévu] (http://code.joejag.com/2009/new-language-features-in-java-7/) pour Java 7. –
Java 7 n'est pas encore définitif , Je présume qu'il s'agit d'un bug et que vous pourriez probablement le signaler à Oracle. Je doute que quiconque ici puisse nous éclairer dessus. – BjornS
'@ BjornS': Ok, je signalerai un bug. J'ai juste l'expérience que beaucoup de "bugs" ne sont pas des bugs mais des malentendus de quelque chose, donc j'ai demandé ici d'abord;) –