2010-05-02 17 views

Répondre

2

Ils pensaient adding caractéristiques linguistiques JDK7, mais ultimately they weren't added

Pour l'instant, vous devrez vérifier manuellement. Vous pouvez juste le pirater et créer une fonction comme

public static void propertyHack(Object bean, String property, String nullreplace){ 
    try{ 
    return new BeanUtilsBean().getProperty(bean, property); 
    } 
    catch(NullPointerException npe){ 
    return nullreplace; 
    } 
} 

Sorte de sucks, mais ça va fonctionner.

+0

bien NPE peut être jeté pour d'autres causes, dites bean lui-même est nulle. N'y a-t-il aucune fonctionnalité dans Beanutils pour gérer cela? – Mohsen

1

PropertyUtils a une méthode spécifique pour les propriétés imbriquées getNestedProperty(...) qui gère NPE en lançant un NestedNullException, ce qui est probablement (?) Meilleur pour l'œil.

Voici le Javadoc.

0

Si quelqu'un d'autre recherche la réponse

Guia g = new Guia(); 
    GuiaParticipante gp = new GuiaParticipante(1); 
    g.setTbGuiaParticipanteCollection(Collections.singletonList(gp));//comment this line to test 
    String name = "tbGuiaParticipanteCollection[0].codParticipante";//the expression itself 
    Resolver resolver = new DefaultResolver();//used to "clean" the expression 
    if (resolver.isIndexed(name)) { 
     String property = resolver.getProperty(name);//remove the [0].codParticipante 

     if (PropertyUtils.getProperty(g, property) != null) { //get the collection object, so you can test if is null 
      String cod = BeanUtils.getNestedProperty(g, name); //get the value if the collection isn't null 
      System.out.println(cod); 
     } 
    }