ホームページ >Java >&#&チュートリアル >java.lang.Voidとvoidの使用方法の比較

java.lang.Voidとvoidの使用方法の比較

黄舟
黄舟オリジナル
2017-10-11 09:40:011741ブラウズ

この記事では主に java.lang.Void と void の比較と使用法を紹介します。編集者はそれが非常に優れていると思います。必要な方は参考にしてください。

void は関数ではなく、メソッドの修飾子です。 void はメソッドに戻り値がないことを意味します。つまり、メソッドはメソッド内のステートメントを実行するだけで、何も返しません。

java.lang.Void は型です。たとえば、Void 参照に null を割り当てます。


Void nil = null;

Void クラスのコードからわかるように、Void 型は継承およびインスタンス化できません。関数の戻り結果として


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 は、関数が null を返すことを意味します (null 以外の他の型を返すことはできません)。


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

ジェネリックが登場する前は、Void は一般にリフレクションで使用されていました。たとえば、次のコードは、戻り値の型が 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());
      }
    }
  }
}

ジェネリックの出現後、Void タイプは特定のシナリオで使用されるようになります。たとえば、Future8742468051c85b06f0a0af9e3e506b5c は結果を保存するために使用されます。 Future の get メソッドは結果を返します (タイプ T)。

しかし、操作が値を返さなかった場合はどうなるでしょうか?この場合、Future903bf37051cf83cbd9686768ac0189aeで表すことができる。 get を呼び出して結果を計算すると、null が返されます。
さらに、Void は Mapbd1f348043883594477738d6b6495f86 などの値のないマップでも使用されるため、マップは Set8742468051c85b06f0a0af9e3e506b5c と同じ機能を持ちます。

そのため、ジェネリックスを使用する場合、関数は結果を返す必要がなく、オブジェクトが値を必要としない場合は、java.lang.Void 型で表すことができます。

概要

以上がjava.lang.Voidとvoidの使用方法の比較の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。