Javaのリフレクションの決意目標空のフィールド

パブリック クラスReflectionUtils { 

    プライベート 決勝 静的ロガーロガー= LoggerFactory.getLogger(ReflectionUtils。クラス); 

    / ** 
     *フィールドチェック
     * / 
    パブリック 静的 クラスをCheckFiled {
         / ** 
         *空のフィールドがnullまたは""です
         * @paramのソース修正が必要テストエンティティ
         * @paramの属性セットexcludeFieldsを検証する必要はありません
         * @return 
         * / 
        パブリック 静的な 無効checkFileNullAble(ソースオブジェクト、文字列... excludeFields){ 

            リスト <文字列> = excludeFieldsList新しい新規のArrayList <> ();
             IF(excludeFields.length> 0 ){ 
                excludeFieldsList = は、Arrays.asList(excludeFields); 
            } 

            試み{
                 // すべての属性とを取得するために、クラスにOBJを取得する 
                フィールドは、[] = FS source.getClass( ).getDeclaredFields();
                 // すべての属性を反復処理
                するための(フィールド、F:FS){ 
                    ; isNullField(F、ソース、excludeFieldsList)
                } 
            } キャッチ(例外E){ 
                logger.error(e.getMessage()、E); 
            } 
        }

        プライベート 静的 無効 isNullFieldは(フィールドは、fは、ソースオブジェクトは、リストは、<文字列> excludeFieldsList)がスローしない例外{
             // プライベートプロパティは設定にもアクセス可能である 
            (f.setAccessible 真の); 

            // プロパティ排除する必要
            IF(excludeFieldsList == nullのを | | excludeFieldsList.size()== 0 ){ 
                オブジェクトfiledValue = f.get(出所);
                 IF(filedValue == nullの || "" .equals(filedValue.toString())){
                     スロー 新しい新しい例外( "パラメータ" + f.getName()+ "はnullまたはである空!");
                } 
                を返します
            } 

            もし(!excludeFieldsList.contains(f.getName())){
                 もし、((f.get(ソース)== NULL || "" .equals(f.get(ソース).toString()))){
                     スロー 新しい例外( "パラメータ"+ f.getName()+" nullまたは空です!" ); 
                } 
            } 
        } 

    } 

}

 

おすすめ

転載: www.cnblogs.com/zfzf1/p/11320503.html