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.