Je ne suis pas clair avec la classe java.lang.Void
en Java. Quelqu'un peut-il nous donner des précisions à ce sujet à l'aide d'un exemple ?
Réponses
Trop de publicités?En fait, il existe un cas pragmatique où void.class est vraiment utile. Supposons que vous deviez créer une annotation pour les champs de classe, et que vous deviez définir la classe du champ pour obtenir des informations à son sujet (par exemple, si le champ est un enum, pour obtenir la liste des valeurs potentielles). Dans ce cas, vous auriez besoin de quelque chose comme ceci :
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface PropertyResourceMapper
{
public Class acceptedValues() default void.class;
}
pour être utilisé comme ça :
@PropertyResourceMapper(acceptedValues = ImageFormat.class, description = "The format of the image (en example, jpg).")
private ImageFormat format;
Je l'ai utilisé pour créer un sérialiseur personnalisé de classes vers un format propriétaire.
De la Docs Java :
public final class Void
extends Object
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.
static Class<Void> TYPE
L'objet Classe représentant le type primitif Java void.
TYPE
public static final Class<Void> TYPE
L'objet Classe représentant le type primitif Java void.