1

我有一个像这样的pojo..

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

及其对应的 hbm 作为内部它的数据现在通过休眠存储在表中请告知,因为状态可以具有通过或失败之类的值现在我必须过滤值是通过还是失败作为仪式现在我可以检查它的值检查并根据我必须将它们放入单独的列表中,我已经通过这种方式完成了

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

只需将对象与您的字符串进行比较

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(),则不会有 NullPointerExceptionf

于 2013-05-22T05:53:09.747 回答
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() 方法在失败时返回字符串“失败”。

于 2013-05-22T05:55:57.323 回答