2013-06-28 156 views
1

我有下面的代碼..如何比較字符串

WorkPackage spack=(WorkPackage)primaryBusinessObject; 
    WTSet res; 
    WTPart spart=null; 
    String state=null; 

res=wt.facade.persistedcollection.PersistedCollectionHelper.service.getAllMembers(spack); 

    System.out.println("the values are "+res); 

    java.util.Iterator iter=res.persistableIterator(); 
    while(iter.hasNext()) 
    { 
     spart=(wt.part.WTPart) iter.next(); 
     wt.lifecycle.LifeCycleState st=spart.getState(); 

     String state=st.toString();     //Lifecycle state of part object 
    } 
    if(state.contains("APPROVED")) 
     result="Proceed"; 

在上面的代碼,我路過偏南包,它可能有muliple數WTPart中objects.Each部分可能有不同的生活循環狀態。我想要的是如果每個部件狀態都是「已批准」,則意味着它應該在我的工作流程中進行。

例如,

Part1=IN WORK 
Part2=IN REVIEW 
Part3=APPROVED 
Part4=APPROVED 
Part5=CANCELED 

我想所有的物體從我的包比較生命週期狀態是APPROVED我可以在矢量或數組列表存儲這些,我不知道如何從所有的比較對象。我的上面的代碼將通過,如果任何一個對象的狀態是APPROVED.I知道這個問題不涉及到windchill。有人幫我解決它

回答

2

如果你存儲所有的狀態在ArrayList<String> states那麼你可以測試它們是否是所有批准使用類似的東西:

boolean allApproved = true; 

for(int i = 0; i < states.size(); i++) { 
    if(!states.get(i).equals("APPROVED") { 
     allApproved = false; 
    } 
} 

在for循環結束時,如果allApproved仍然是true,那麼您很好。