10907


あるクラスがAからZまでのメンバ変数を持っている場合、そのメンバ変数全てに値が格納されていることを判定する良い方法はないでしょうか。

[code]

    class Test{
     public String A;
     public String B;
     public List<String> C;
     .
     .
     .
    }
    
[/code]

上記のようなクラスを判定メソッドhasAllAttributes()を作成する場合

[code]

    boolean hasAllAttributes(){
       if(A == null ||
          B == null ||
          .
          .
          .){
          return false;
       }
       return true;
    }
    
[/code]

のように判定するしかないのでしょうか。  
よろしくお願いします。


CC BY-SA 3.0
2015-06-02T12:29:03.897
10902
2015-06-02T14:27:46.507
9577
question
java
メンバ変数全てに値が格納されていることを知る良い方法


@BLUEPIXさんの回答より  
Class#getDeclaredFields()で可能である。

先ほどのhasAllAttributes()を改良すると以下になる。

[code]

    boolean hasAllAttributes(){
       for (Field field : this.getClass().getDeclaredFields()) {
          if(field.get(this)==null){
             return false;
          }
       }
       return true;
    }
    
[/code]


CC BY-SA 3.0
2015-06-02T14:27:46.507
10907
2015-06-02T14:27:46.507
9577
10902
answer