如果我的问题不明确,我深表歉意,
我目前正在处理学校分配,我必须使用以下枚举类:
public enum Seeds {
TOMATE,
CONCOMBRE,
SALADE,
PATATE,
BETTERAVE;
}
与其为每个种子的买入价、卖出价和成熟时间制作一大堆常量,并且每次都必须输入它们,我想直接在类中为每个枚举分配属性,如下所示:
public enum Seeds {
TOMATE(2.00, 3.50, 5),
CONCOMBRE(1.00, 2.50, 6),
SALADE(1.50, 4.50, 8),
PATATE(2.50, 3.50, 4),
BETTERAVE(2.00, 4.00, 10);
private final double
buy_price,
sell_price;
private final int
maturation_time;
public Seeds(double buy_price, sell_price, int maturation_time) {
this.buy_price = buy_price;
this.sell_price = sell_price;
this.maturation_time = maturation_time;
}...
并返回带有 getter 的属性。
但是,我的老师告诉我,我不能修改提供的枚举类......所以我想知道是否有可能在另一个类中构建种子。
如果您无法修改种子枚举,您可以创建一个 POJO 来保存您需要的所有信息,如下所示:
public class Seed {
private Seeds seedType;
private double buyPrice;
private double sellPrice;
private int maturationTime;
// constructor, getters and setters here
}
不过,最好将属性和构造函数添加到 Seed 枚举中。
您可以创建一个封装不同价格类型的自定义类,并保留一个Map<Seed, YourCustomPricesClass>
来存储关系。
请参见:Java 教程中的映射接口
是的,这是可能的,但你正在侵蚀创建枚举背后的主要意图。如果要创建类的可修改状态,从技术上讲,您正在创建一个新对象。如果是这样的话,你甚至不需要一开始的枚举,只要坚持上课就行了。