Я большое перечисление заявило в своем классеперечисление как место хранения?
public enum CarMaker{
Honda,
Toyota,
Sony,
...;
public CarMaker at(int index){ //a method to retrieve enum by index
CarMaker[] retval = this.values();
return retval[index];
}
public final SomeObj val; //a value associated with each enum
//.. more custom functions if needed
}
, так как только один экземпляр каждого Автоконцерна требуется, это плохая практика, если я хочу использовать это перечисление в качестве хранилища (как массив, но вместо доступа каждый элемент с помощью индексов, я мог бы использовать более интуитивно понятные имена. Также я могу иметь собственные функции для каждого элемента)
CarMaker A = CarMaker.Honda;
CarMaker B = CarMaker.at(1);
//Error above b/c 'at' is not a static member, can I make at a static member?
A.val = 5;
B.val = 6;
//Here I want A to be share data with B since both are "Honda"
//but it doesn't seem to do that yet
System.out.println(A)
System.out.println(B)
//Expected output:
//A: 6
//B: 6
Сейчас а и в, кажется, чтобы создать свой собственный экземпляр «Хонда», но я хочу, чтобы они быть разделенным. Является ли это возможным?
Sony делают автомобили? –
упс ... но вы поняли мою идею. : P – Bonk
У перечислений нет отдельных экземпляров, поэтому я не вижу, как у вас возникли проблемы. A и B должны быть одним и тем же объектом. –