Considera il seguente estratto di codice (immaginario):
class X {
private static String IS_PAYLOAD_REQUIRED = "4001";
[....]
checkPayloadRequired(String input) {
if (input.startsWith(IS_PAYLOAD_REQUIRED)) {
settings.enable(Integer.valueOf(IS_PAYLOAD_REQUIRED).intValue());
}
}
}
IS_PAYLOAD_REQUIRED
è richiesto sia come String
sia come int
. Il codice sopra dela una costante String
e converte in int
in fase di runtime quando necessario. Questa conversione è economica ma non necessaria.
Vale la pena tentare di evitare la conversione? Posso pensare ai seguenti due modi per farlo. Apprezzo i commenti sull'utilità di entrambi.
1: Dichiara due variabili
private static String IS_PAYLOAD_REQUIRED = "4001";
private static String IS_PAYLOAD_REQUIRED_INT = Integer.valueOf(IS_PAYLOAD_REQUIRED).intValue();
Adesso usa una delle due costanti.
2: crea una classe StringAndInt static static StringAnInt IS_PAYLOAD_REQUIRED = new StringAnInt (4001);
Utilizza IS_PAYLOAD_REQUIRED.intValue()
o IS_PAYLOAD_REQUIRED.stringValue()
. Non sto mostrando l'implementazione della classe qui perché è banale.
Il secondo è ovviamente più sicuro, ma mi chiedo se sia eccessivo.