带有数据和行为的节俭枚举定义

Posted

技术标签:

【中文标题】带有数据和行为的节俭枚举定义【英文标题】:Thrift enum definitions with data and behavior 【发布时间】:2011-06-30 17:24:57 【问题描述】:

如果其他人处于尝试从 thriftIDL 生成以下 java 类的情况,关于 thrift 的新手问题。我看到它只支持分配的 32 位非负整数值。这是因为在其他语言中缺乏对以下枚举类型的支持吗?没看thrift IDL能不能做这种。

public enum ExceptionTypes 

        ERROR_THIS("APP_EXP_001","Some message"), ERROR_THAT(...etc

    private String errorCode;

    private String defaultMessage;

    private ExceptionTypes(String errorCode, String defaultMessage) 
        this.errorCode = errorCode;
        this.defaultMessage = defaultMessage;
    

    public String getErrorCode() 
        return this.errorCode;
    

    public String getDefaultMessage() 
        return this.defaultMessage;
    

【问题讨论】:

【参考方案1】:

无法将行为描述添加到 Thirft 枚举中,主要是因为 Thirft 旨在小型化并适用于多种语言。

但是,您可以为自己编写一个构造函数,在给定第三个枚举时创建一个像上面一样的 java 枚举。在您从 thrift 层接收数据后,这将在您的代码中添加一层处理,但在实际用例中,线路上使用的数据结构很少与应用程序内部使用的数据结构完全相同。

Thirft(以及任何 rpc、CORBA 或类似层)用于简化网络代码并增加稳健性,而不是隐藏它的存在以便人们忘记它。

【讨论】:

以上是关于带有数据和行为的节俭枚举定义的主要内容,如果未能解决你的问题,请参考以下文章

带有文本快捷方式的自定义 UIToolbar 的行为与带有 UIButtons 和 UITableViewControllers 的键盘完全不同

云原生架构节俭 Kubernetes operator 第1部分:简介

这个带有非聚合列的 cassandra 查询的定义行为是啥?

带有 Qt/QML 应用程序的 Windows 7 中的自定义触摸行为

Rails 6.1.4 中的 ActiveRecord 枚举行为更改

带有溢出的 ARM Neon 浮点整数转换的行为