public static <T extends String> void main(T[] args) {
System.out.println("Hello World!");
}
J'étais curieux de voir si l'extrait ci-dessus du code de compiler et d'exécuter avec succès, et il le fait! Cependant, je me suis aussi demandé ce qui se passerait si T extends String
a été remplacé par T extends String & AutoClosable
; String
ne met pas en oeuvre AutoClosable
, donc je n'ai pas que ça à exécuter avec succès, mais cela ne fonctionne toujours!
public static <T extends String & AutoCloseable> void main(T[] args) {
System.out.println("This still works!");
}
Donc ma question est, pourquoi est-ce toujours exécuter avec succès?
Notes:
- Je suis en essais ce avec Java 10.0.1
- L'ide n'est pas jouer gentil avec cette méthode car elle ne voit pas cela comme un point d'entrée pour le programme, je ne l'ai pas testé avec d'autres IDEs.
- Vous êtes également capable de passer des arguments à l'aide de la ligne de commande comme vous le feriez avec n'importe quel autre programme.