Validation de précondition et allocation de String
Bonjour à tous,
Je souhaite valider des préconditions sur les arguments de mes méthodes.
En cas d'invalidation, cela déclenche une exception Runtime.
Cela donne quelque chose du genre :
Code:
1 2 3
| public void maMethode(Integer ageDeToto) {
if (null == ageDeToto) throw new IllegalArgumentException("ageDeToto can't be null");
} |
Cela répond à mon besoin mais je souhaiterais aller plus loin en définissant une classe de Check qui effectue ce contrôle de précondition.
Ex :
Code:
1 2 3 4 5
| public class Check {
public void preCondNotNull(Object arg, String message) {
if (null == arg) throw new IllegalArgumentException(message);
}
} |
Dans le code précédent, cela donnerait donc :
Code:
1 2 3
| public void maMethode(Integer ageDeToto) {
Check.preCondNotNull("ageDeToto can't be null");
} |
Le problème :
==> Ce qui me gène est que le message fourni à la précondition sera dans ce cas alloué à chaque test de la précondition (puisque passé en argument). Alors qu'en n'utilisant pas la classe Check, ce message n'est alloué que si l'exception est lancée.
Q1 : Pensez-vous que cette allocation systématique à chaque test d'une condition puisse s'avérer problématique ou bien le garbage collector fera suffisamment bien son travail pour que ce soit transparent ?
Q2 : Connaissez-vous des API faisant déjà le même travail que ma classe Check ?
En vous remerciant.