Maison  >  Article  >  Java  >  Comparaison des méthodes d'utilisation de java.lang.Void et void

Comparaison des méthodes d'utilisation de java.lang.Void et void

黄舟
黄舟original
2017-10-11 09:40:011695parcourir

Cet article présente principalement la comparaison et l'utilisation de java.lang.Void et void. L'éditeur pense que c'est plutôt bien, je vais le partager avec vous ici. Les amis qui en ont besoin peuvent s'y référer.

void n'est pas une fonction, c'est un modificateur d'une méthode. Void signifie que la méthode n'a pas de valeur de retour, ce qui signifie que la méthode exécutera uniquement les instructions de la méthode, mais ne retournera rien.

java.lang.Void est un type. Par exemple, attribuez null à une référence Void.


Void nil = null;

Comme vous pouvez le voir dans le code de la classe Void, le type Void ne peut pas être hérité et instancié.


public final
class Void {
  /**
   * The {@code Class} object representing the pseudo-type corresponding to
   * the keyword {@code void}.
   */
  @SuppressWarnings("unchecked")
  public static final Class<Void> TYPE = (Class<Void>) Class.getPrimitiveClass("void");
  /*
   * The Void class cannot be instantiated.
   */
  private Void() {}
}

Void comme résultat de retour de la fonction signifie que la fonction renvoie null (les autres types ne peuvent pas être renvoyés sauf null).


Void function(int a, int b) {
  //do something
  return null;
 }

Avant l'émergence des génériques, Void était généralement utilisé en réflexion. Par exemple, le code suivant imprime le nom d’une méthode avec un type de retour void.


public class Test {
  public void print(String v) {}
  public static void main(String args[]){
    for(Method method : Test.class.getMethods()) {
      if(method.getReturnType().equals(Void.TYPE)) {
        System.out.println(method.getName());
      }
    }
  }
}

Après l'émergence des génériques, le type Void sera utilisé dans certains scénarios. Par exemple, Future8742468051c85b06f0a0af9e3e506b5c est utilisé pour enregistrer les résultats. La méthode get de Future renverra le résultat (type T).

Mais que se passe-t-il si l'opération ne renvoie pas de valeur ? Dans ce cas, il peut être représenté par Future903bf37051cf83cbd9686768ac0189ae. Lorsque get est appelé et que le résultat est calculé, null sera renvoyé.
De plus, Void est également utilisé dans les cartes sans valeur, telles que Mapbd1f348043883594477738d6b6495f86. De cette façon, la carte aura la même fonction que Set8742468051c85b06f0a0af9e3e506b5c.

Ainsi, lorsque vous utilisez des génériques, la fonction n'a pas besoin de renvoyer de résultat ou lorsqu'un objet n'a pas besoin de valeur, il peut être représenté par le type java.lang.Void.

Résumé

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn