Come sappiamo che la classe Java enum:Come riutilizzare il codice in molteplici Enum
- estende implicitamente java.lang.Enum;
- non può estendersi da altre classi di enumerazione.
ho più classe enum, come di seguito:
enum ResourceState {
RUNNING, STOPPING,STARTTING;//...
void aMethod() {
// ...
}
}
enum ServiceState {
RUNNING, STOPPING,STARTTING,ERROR;//...
void aMethod() {
// ...
}
}
il metodo aMethod()
in enum ResourceState
e ServiceState
è esattamente la stessa.
in OOP, se ResourceState
e ServiceState
non sono enum, dovrebbero astratto lo stesso metodo per una classe astratta super, come questo:
abstract class AbstractState{
void aMethod() {
// ...
}
}
ma ResourceState è in grado di estende dal AbstractState, hai qualche idea di aggirare?
Cosa vuoi dire 'esattamente la stessa cosa'? Non vi è alcun riferimento all'enum? In tal caso, è possibile estrarre la logica in un metodo statico. –
Questo è quello che sto facendo ora, ma sto cercando una soluzione migliore – BlackJoker