Qual è il modo migliore per utilizzarlo come classe base per una classe di tipo Enum. Mi piacerebbe essere in grado di creare diversi tipi di calcestruzzo senza dover ricodificare i metodi getter.Classi di base Enum in Java
public enum Tool extends Item
{
Pickaxe("Pickaxe", 101),
Saw("Saw", 201);
}
E Tool.getNames() restituirebbe un elenco di tutti i nomi di oggetto nella classe Strumento.
public enum Item
{
Default("Name", 0);
private final int id;
private final String name;
Item(String name, int id)
{
this.id = id;
this.name = name;
}
public int getId()
{
return this.id;
}
public int[] getIds()
{
Item[] items = Item.values();
int[] ids = new int[items.length];
for (int i = 0; i < items.length; i++)
{
ids[i] = items[i].getId();
}
return ids;
}
public String getName()
{
return this.name;
}
public String[] getNames()
{
Item[] items = Item.values();
String[] names = new String[items.length];
for (int i = 0; i < items.length; i++)
{
names[i] = items[i].getName();
}
return names;
}
}
So che non è possibile così, ma come potrei affrontare questa situazione? Mi piacerebbe poter accedere ai membri di ogni classe proprio come faresti con una enumerazione: Tool.Pickaxe.
Un suggerimento: le enumerazioni non possono estendere un'altra classe, tuttavia possono ancora implementare un'interfaccia. – skiwi
Le enumerazioni automagicamente estendono la classe 'Enum'. Non possono estendere una classe. Usa un'interfaccia. – MathSquared
Implementare un'interfaccia significa che dovrò ancora codificare i metodi per ciascuna sottoclasse. Voglio evitare questo in qualche modo. –