You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:05:33