Comment demander BeanUtils d'ignorer les valeurs null
À l'aide de Communes beanUtils je voudrais savoir comment faire pour demander à n'importe quel convertisseur de dire la Dateconverter à ignorer les valeurs nulles et utiliser la valeur null comme valeur par défaut. Par exemple, considérez une classe publique,
public class X {
private Date date1;
private String string1;
//add public getters and setters
}
et mon convertertest que,
public class Apache {
@Test
public void testSimple() throws Exception {
X x1 = new X(), x2 = new X();
x1.setString1("X");
x1.setDate1(null);
org.apache.commons.beanutils.BeanUtils.copyProperties(x2, x1);
//throws ConversionException
System.out.println(x2.getString1());
System.out.println(x2.getDate1());
}
}
Ci-dessus jette un NPE depuis la date se trouve être null. Cela ressemble un très primitive du scénario pour moi, qui doit être manipulé par défaut (comme dans, je l'espère x2 pour avoir la valeur null pour date1). Le doco me dit que je peux demander à le convertisseur pour ce faire. Quelqu'un peut-il m'indiquer la meilleure façon de faire cela ?
Je ne veux pas mettre la main sur le Convertisseur et isUseDefault() pour être vrai parce que puis-je faire pour l'ensemble des Date, Enum et de nombreux autres convertisseurs !
OriginalL'auteur Kannan Ekanath | 2010-04-08
Vous devez vous connecter pour publier un commentaire.
Apparemment ça ressemble, il y a une façon de dire au ConvertUtils de ne pas lancer des exceptions sur les valeurs null qui est fait en appelant
OriginalL'auteur Kannan Ekanath
La meilleure solution est de mettre à jour à BeanUtils 1.9.0, étant donné que ce problème est résolu comme vous pouvez le voir ici https://issues.apache.org/jira/browse/BEANUTILS-454
J'ai été en utilisant la version 1.9.2 et de rétrograder à 1.9.0 pour mon projet. Le problème n'est pas résolu.
Super! Il résout mon problème.
OriginalL'auteur Diego Plentz
Peut-être un peu en retard, mais semble que vous pouvez enregistrer un DateConverter
https://issues.apache.org/jira/browse/BEANUTILS-387
OriginalL'auteur Ninju Bohra
J'ai récemment rencontré ce problème et juste converti ma variable d'une chaîne pour éviter cette erreur et l'a converti à une date en cas de besoin. Pas la solution la plus élégante, mais pour des raisons de simplicité et pour éviter des problèmes de ce genre, c'est une solution viable. L'autre mise en garde est que BeanUtils serait incendie au large de méthodes avant mon cours de charge, j'ai donc opté pour plutôt que d'une plus compliqué solution au problème en utilisant des chargeurs de classes.
Par la façon dont, avant la version 1.8.0, BeanUtils lui-même reviendrait à ignorer ces valeurs null.
Voir ce lien:
Pas de valeur spécifiée pour 'Date' lorsque le champ est un java.util.Date avec une valeur null pour une explication détaillée.
OriginalL'auteur James Drinkard
Je suis un peu surpris de voir un cas simple comme paramètre une valeur null dans un haricot, comme ceci:
causes de plantage de comportement, comme décrit ci-dessus.
Pour ce que ça vaut, voici ma solution:
OriginalL'auteur Marc