ホームページ >Java >&#&チュートリアル >java.lang.Voidとvoidの使用方法の比較
この記事では主に 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 サイトの他の関連記事を参照してください。