Enum benzeri bir sınıf için bunu temel sınıf olarak kullanmanın en iyi yolu nedir? Getter yöntemlerini yeniden kodlamak zorunda kalmadan farklı beton türleri oluşturabilmek istiyorum.Java Enum Temel Sınıfları
public enum Tool extends Item
{
Pickaxe("Pickaxe", 101),
Saw("Saw", 201);
}
Ve Tool.getNames() Aracı sınıfındaki tüm Öğe adlarının bir listesini döndürür.
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;
}
}
Bunun mümkün olmadığını biliyorum, ancak bu duruma nasıl yaklaşabilirim? Her sınıfın üyelerine tıpkı bir enum gibi ulaşabilmeyi isterdim: Tool.Pickaxe.
Bir ipucu: enums başka bir sınıfı genişletemez, ancak yine de bir arabirim uygulayabilirler. – skiwi
Enums, 'Enum' sınıfını otomatik olarak genişletir. Bir dersi uzatamazlar. Bir arayüz kullan. – MathSquared
Bir arabirimin uygulanması, her bir alt sınıfın yöntemlerini kodlamak zorunda olduğum anlamına gelir. Bunu bir şekilde önlemek istiyorum. –