Void
est une classe spéciale habituellement utilisée uniquement pour la réflexion - son utilisation principale est de représenter le type de retour d'une méthode void. De la javadoc pour Void
:
La classe Void est une classe de remplacement non substantielle qui contient une référence à l'objet Class représentant le mot-clé Java void.
Parce que le Void
ne peut pas être instanciée, la seule valeur que vous pouvez transmettre à une méthode avec une classe Void
paramètre de type, tel que handle(Void e)
c'est null
.
C'est la version officielle des événements, mais pour ceux qui sont intéressés, en dépit des affirmations contraires dans la javadoc de l'application Void
vous peut instancie réellement une instance de Void
:
Constructor<Void> c = Void.class.getDeclaredConstructor();
c.setAccessible(true);
Void v = c.newInstance(); // Hello sailor!
Cela dit, j'ai vu Void
"utilement" utilisé comme un type de paramètre générique lorsque vous voulez indiquer que le type est "ignoré", par exemple :
Callable<Void> ignoreResult = new Callable<Void> () {
public Void call() throws Exception {
// do something
return null; // only possible value for a Void type
}
}
Callable
Le paramètre générique de l'outil est le type de retour, donc lorsque l'outil Void
est utilisé de cette manière, c'est un signal clair pour les lecteurs du code que la valeur renvoyée n'est pas importante, même si l'utilisation de la balise Callable
est nécessaire, par exemple si l'on utilise l'interface Executor
cadre.