1

私はこのようなポジョを持っています..

public class abcObject {
    private long id;
    private long version;
    private DateTime created ;
    private String status;
}

およびそれに対応する hbm は、内部的にはデータが休止状態を介してテーブルに格納されているため、ステータスには pass または fail のような値が含まれている可能性があるため、アドバイスしてください今、儀式として pass または fail であるかどうかの値をフィルターする必要があります。検査して、それらを別のリストに入れなければならないことに応じて、この方法で行いました

List<abcObject> successful = new ArrayList <abcObject>();
List<abcObject> exception = new ArrayList <abcObject>();
List<abcObject> failure = new ArrayList <abcObject>();

//getting the list from the database into the parameter allabcObjects
List<abcdObject> allabcObjects = abcHome.getabcObjects(fileIdentifier);

if (abcObjects !=null && abcObjects.size() > 0) {
    for (abcObject f : allabcObjects) {
    }

forループを使用して各オブジェクトを反復処理しているので、それがf.getstatus()メソッドであることを調べて、失敗した場合はすべての詳細を失敗リストに記載し、成功した場合はそれを確認する方法を教えてください。成功したリストに保存する必要があります。これを達成する方法を教えてください

4

2 に答える 2

0

for ループは次のようになります。

for (abcObject f : allabcObjects) {
    String status = f.getstatus();
    if(status.equals("fail")){
        failure.add(f);
    }
    else{
        otherList.add(f);
    }
}

otherListを宣言する必要もあります。

List<abcObject> otherList = new ArrayList<abcObject>();

これは、失敗した場合に getstatus() メソッドが文字列「fail」を返すことを前提としています。

于 2013-05-22T05:55:57.323 に答える
0

オブジェクトを文字列と比較するだけです

List<abcObject> successful = new ArrayList <abcObject>();
List<abcObject> exception = new ArrayList <abcObject>();
List<abcObject> failure = new ArrayList <abcObject>();


//getting the list from the database into the parameter allabcObjects
List<abcdObject> allabcObjects = abcHome.getabcObjects(fileIdentifier);

if (abcObjects !=null  && abcObjects.size()>0)
{
     for (abcObject f : allabcObjects) {

            if( "pass".equalsIgnoreCase(f.getStatus()) ) {
                successful.add( f );
            } else if ( "failNow".equalsIgnoreCase(f.getStatus()) {
                failure.add( f ); 
            }

     }
}

いくつかのことを指摘するだけです。さらに良いのはstatic final string、次のような成功/失敗の文字列を作成することです。

private static final String SUCCESS = "success";
private static final String FAIL = "failNow";
....
if( SUCCESS.equalsIgnoreCase(f.getStatus()) ) {
    successful.add( f );
} else if ( FAIL.equalsIgnoreCase(f.getStatus()) {
    failure.add( f ); 
}

逆ではなくと比較するSUCCESSと、何らかの形で null になるf.getStatus()場合に NullPointerException が発生しないことが確実になります。f

于 2013-05-22T05:53:09.747 に答える