gpt4 book ai didi

java - 在 Java 中,消息生产者应该如何标识自己?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:36:53 26 4
gpt4 key购买 nike

我有一个包含多个生产者和一个消费者的统一消息对象队列。消费者正在发布信息,需要能够根据数据来源授予访问权限,因此我希望生产者随消息一起发送合适的标识符。生产者自己不对远端访问限制负责。

id 应该与我的应用程序中生产者的角色相关。我想强制所有生产者都必须定义一个,并且子类生产者可以选择继承或重新定义它。生产者的类名是一个很好的近似值,但我想要识别的属性并不是类结构中真正固有的,而是我定义的。

我可以使用反射来找出类名或接口(interface)名,但这听起来开销太大了。此外,我不确定要查找的合适属性是什么。

由于所有的生产者都是同一个抽象父类的子类,我认为一个好的方法是在其中(或在接口(interface)中)放置一个常量,但后来我意识到在 Java 中,“常量”实际上是一个“静态” final”,这意味着我不能覆盖它,所以它不能那样工作。

更有经验的 Java 程序员会怎么做?

最佳答案

如果您需要识别“类型”,请定义一个强制类为您提供该类型的接口(interface),然后在所有地方实现该接口(interface)。

例子:

public interface IHasType {
public String getTypeId();
}

但是,如果类型列表是固定的,我会更进一步,使类型成为 Enum:

public enum MyType {
TYPE_A, TYPE_B;
}

然后返回此 enum 而不是 String

关于java - 在 Java 中,消息生产者应该如何标识自己?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/606835/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com