gpt4 book ai didi

java - API - 如何让 API 用户声明自己的类型(然后由 API 使用)?

转载 作者:行者123 更新时间:2023-12-01 16:52:26 25 4
gpt4 key购买 nike

我想创建一个库(一开始供自己使用,但也许稍后发布,所以我想以正确的方式进行)。

我将使用以下(抽象)示例来解释我的问题:

public void onSomeEvent(SomeEvent someEvent) {
String action = someEvent.getAction();

EventTypes eventTypes = getEventTypes(); //problem lies with this method

for (EventType eventType : eventTypes) {
if (eventType.getAction().equals(action)) {
eventType.onEvent(someEvent);
}
}
}

private EventTypes getEventTypes {
//User should have defined his own event-type-classes by extending EventType:
//What is the best way to let the user list/define these EventTypes
//so my API can access them (e.g. with this method)?
}

我的问题如示例的注释所示:

让我的 API 的用户为 API 的此 EventReceiver 定义自己的 EventTypes,同时满足(最好情况下是所有)以下条件的最佳方法是什么:

  • 用户可以轻松定义事件类型
  • 不使用反射
  • 用户类型不在运行时注册,而是在某处静态列出(没有注释处理器)

我不知道这些具体条件是否都能实现(我猜不能)。

但是如果您忽略了一个或多个标准(第一个标准在任何情况下都不应如此),请向我解释为什么没有更好的方法来做到这一点(无需编写我自己的注释处理器)。

我希望我的问题很清楚。
如果您认为不是,请建议我如何使其更精确。

如果您认为我遗漏了某些内容或应该采取完全不同的方法,我会很高兴您的指正。

提前谢谢您。

最佳答案

    public List<? extends EventType> getEventTypes() {
...
}

是时候了解泛型了,我的 friend :

Lesson: Generics (Updated) (The Java Tutorials > Learning the Java Language)

关于java - API - 如何让 API 用户声明自己的类型(然后由 API 使用)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37350520/

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