【问题标题】:Return String from enum从枚举返回字符串
【发布时间】:2018-11-24 01:51:51
【问题描述】:

我想使用这个枚举结构来返回字符串。

public enum Exchanges {

    PROCESSING("processing");

    private final String type;

    Exchanges(final String type) {
        this.type = type;
    }

    public String getType() {
        return type;
    }

    @Override
    public String toString() {
        return type;
    }
}

当我使用Exchanges.PROCESSING 时出现错误:

Syntax error, insert "VariableDeclarators" to complete 
 LocalVariableDeclaration

我该如何解决这个问题?

【问题讨论】:

  • Exchanges e = Exchanges.PROCESSING 应该可以正常工作。请出示您的代码。
  • 是的,但我想在这种情况下使用代码:channel.exchangeDeclare(Exchanges.PROCESSING, BuiltinExchangeType.TOPIC);
  • 请显示使用与channel.exchangeDeclare相关的代码

标签: java


【解决方案1】:
channel.exchangeDeclare(String exchange , BuiltinExchangeType obj)

应该是

channel.exchangeDeclare(Exchanges exchange , BuiltinExchangeType obj)

或者你应该改变方法调用

channel.exchangeDeclare(Exchanges.PROCESSING, BuiltinExchangeType.TOPIC);

channel.exchangeDeclare(Exchanges.PROCESSING.getType(), BuiltinExchangeType.TOPIC);

【讨论】:

  • 谢谢,但是有没有办法在没有getType()的情况下只打电话给Exchanges.PROCESSING
  • 当然有。它会返回一个Exchanges 类型的对象。这不是String
  • 那么不要使用枚举。因为这不是枚举的工作方式。
  • 是的。正如@Ben 所说,也许您想使用常量,而不是枚举。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多