如何为OrderProviderData类设置TradingInterface枚举属性值?
给OrderProviderData添加TradingInterface属性的实现方案
没问题,咱们来给OrderProviderData类加上TradingInterface枚举类型的属性,我给你两种实用的实现方案,都是符合Java开发惯例的:
方案一:基础属性添加(最常用)
这是最直接的方式,和你现有类里的easyTrade、order属性保持一致的风格,添加私有属性、Getter和Setter方法,还可以按需重载构造方法:
public class OrderProviderData { public enum TradingInterface {CX_CLIENT, CX_SERVER, CX_ADMIN, CX_ENGINE} // 新增的TradingInterface属性 private TradingInterface tradingInterface; private boolean easyTrade = false; private OrderPreSelect order; private String[] event; // 可选:添加带TradingInterface的构造方法 public OrderProviderData(TradingInterface tradingInterface) { this.tradingInterface = tradingInterface; } // 可选:无参构造方法(保持原有兼容性) public OrderProviderData() {} // Getter方法 public TradingInterface getTradingInterface() { return tradingInterface; } // Setter方法 public void setTradingInterface(TradingInterface tradingInterface) { this.tradingInterface = tradingInterface; } // 原有类的其他方法保持不变 public OrderPreSelect getOrder() { return order; } public void setOrder(OrderPreSelect order) { this.order = order; } public String[] getEvent() { return event; } public void setEvent(String[] event) { this.event = event; } }
使用示例
// 方式1:通过构造方法初始化 OrderProviderData data1 = new OrderProviderData(OrderProviderData.TradingInterface.CX_ADMIN); // 方式2:通过Setter方法设置 OrderProviderData data2 = new OrderProviderData(); data2.setTradingInterface(OrderProviderData.TradingInterface.CX_ENGINE);
方案二:构建者模式(适合多属性场景)
如果后续这个类的属性会越来越多,用构建者模式会让代码更优雅、可读性更高:
public class OrderProviderData { public enum TradingInterface {CX_CLIENT, CX_SERVER, CX_ADMIN, CX_ENGINE} private TradingInterface tradingInterface; private boolean easyTrade = false; private OrderPreSelect order; private String[] event; // 私有构造方法,只能通过Builder创建实例 private OrderProviderData(Builder builder) { this.tradingInterface = builder.tradingInterface; this.easyTrade = builder.easyTrade; this.order = builder.order; this.event = builder.event; } // Getter方法(构建者模式下通常只提供Getter,不提供Setter) public TradingInterface getTradingInterface() { return tradingInterface; } public boolean isEasyTrade() { return easyTrade; } public OrderPreSelect getOrder() { return order; } public String[] getEvent() { return event; } // 构建者类 public static class Builder { private TradingInterface tradingInterface; private boolean easyTrade = false; // 默认值 private OrderPreSelect order; private String[] event; public Builder tradingInterface(TradingInterface tradingInterface) { this.tradingInterface = tradingInterface; return this; } public Builder easyTrade(boolean easyTrade) { this.easyTrade = easyTrade; return this; } public Builder order(OrderPreSelect order) { this.order = order; return this; } public Builder event(String[] event) { this.event = event; return this; } public OrderProviderData build() { return new OrderProviderData(this); } } }
使用示例
OrderProviderData data = new OrderProviderData.Builder() .tradingInterface(OrderProviderData.TradingInterface.CX_SERVER) .easyTrade(true) .build();
额外小提示
- 如果需要给
tradingInterface设置默认值,可以直接在声明时初始化:private TradingInterface tradingInterface = TradingInterface.CX_CLIENT; - 如果是Spring等框架环境,还可以结合
@Setter、@Getter等Lombok注解简化代码,省去手动写Getter/Setter的麻烦。
内容的提问来源于stack exchange,提问作者Arefe
相关产品推荐
相关产品推荐

