2017-06-30 1 views
0

Est-il possible d'utiliser la méthode getter comme une variable, je veux dire ici je veux remplacer getDiscountCode() avec une variableen utilisant des variables setter getter dans une boucle

for (int row=0; row < pOSBean.getItemList().size(); row++) { 
    valueDTO = new ValueDTO(); 
    valueDTO.setRowId(1); 
    valueDTO.setValue(pOSBean.getItemList().get(row).getDiscountCode()); 
    valueListDTO.add(valueDTO); 
} 

quelque chose comme ça

variable = getDiscountCode(); 

for (int row=0; row < pOSBean.getItemList().size(); row++) { 
    valueDTO = new ValueDTO(); 
    valueDTO.setRowId(1); 
    valueDTO.setValue(pOSBean.getItemList().get(row).+variable); 
    valueListDTO.add(valueDTO); 
} 

je ne peux pas utiliser 'pOSBean.getItemList(). get (ligne) .getDiscountCode()' ligne comme une variable cuz rowid est là des suggestions plz

public List<ItemCartDTO> getItemList() { 
    return itemList; 
} 

public class ItemCartDTO implements Serializable { 
    private String locCode; 
    private List<CommonDropdownItemsDTO> selectedItmStockList; 
    private String discountCode; 

    public String getDiscountCode() { 
     return discountCode; 
    } 
    public void setDiscountCode(String discountCode) { 
     this.discountCode = discountCode; 
    } 
    ... 
} 

Répondre

0

Vous pouvez utiliser l'interface fonctionnelle Function à cette fin:

Function<Integer, DISCOUNT_CODE> method = (row) -> pOSBean.getItemList().get(row).getDiscountCode(); // Edit DISCOUNT_CODE Type 

La fonction prendra un entier (votre ligne) et retourner le code de réduction:

valueDTO.setValue(method.apply(row)); 

Vous pouvez également regarde dans le enhanced for loop. Avec ce type de boucle, vous pouvez rendre votre boucle encore plus jolie:

for (Item item : pOSBean.getItemList()) 
{ 
    valueDTO = new ValueDTO(); 
    valueDTO.setRowId(1); 
    valueDTO.setValue(item.getDiscountCode()); 
    valueListDTO.add(valueDTO); 
} 
+0

ont appris une nouvelle chose grâce à u Rollback. Génial! ça a marché!! – xyzabc

0

Il manque quelques détails importants. Par exemple, lorsque vous appelez valueDTO.setValue(...), quel type attend setValue? Tout Object? Un String? Un cours personnalisé? Si c'est une classe personnalisée, y a-t-il vraiment plusieurs getters que vous pouvez varier entre, cela retournerait cette classe?

Dites que le paramètre setValue est un Object. Si quelque chose de getRow() retours classe YourClass, vous pouvez écrire:

Function<YourClass, Object> getter = YourClass::getDiscountCode; 

et l'appeler comme ceci:

valueDTO.setValue(getter.apply(pOSBean.getItemList().get(row))); 
+0

Thnks ajb. Ça a marché!! et j'ai ajouté les détails manquants. – xyzabc