gpt4 book ai didi

java - 如何允许其他人通过 API 向类添加自定义枚举

转载 作者:行者123 更新时间:2023-11-29 04:50:48 25 4
gpt4 key购买 nike

所以我创建了一个名为 properties 的类,它的一部分就是这样(因为重复太多而被删掉)

public enum Parameters {
SET_CUSTOM_NAME {
public void process(Entity entity, Object obj, YamlConfiguration yml, String module) {
entity.setCustomName(ChatColor.translateAlternateColorCodes('&', String.valueOf(obj)));
}
},
SET_CUSTOM_NAME_VISIBLE {
public void process(Entity entity, Object obj, YamlConfiguration yml, String module) {
entity.setCustomNameVisible((boolean) obj);
}
},
SET_NO_AI {
public void process(Entity entity, Object obj, YamlConfiguration yml, String module) {
NBTUtils.addEntityTag(entity, "NoAI", (boolean) obj);
}
},
SET_SILENT {
public void process(Entity entity, Object obj, YamlConfiguration yml, String module) {
NBTUtils.addEntityTag(entity, "Silent", (boolean) obj);
}
}
{...};

public abstract void process(Entity entity, Object obj, YamlConfiguration yml, String module);

通过以下方式调用这些参数:

Parameters.valueOf(param.getKey().toUpperCase()).process(entity, param.getValue(), yml, module);

^ "param"是列表中的缓存字符串。别介意。

我唯一的问题是我想让其他人能够将他们自己的进程添加到枚举类中,这样就没有人受限于我自己的进程,而且仅限于我自己的进程。这可能吗?

换句话说,是否可以通过 API 向其添加枚举?我应该在某处包含什么方法,以允许其他开发人员访问枚举类并向其中添加他们自己的进程?

最佳答案

枚举应该代表一组完整的值。您永远不会在运行时添加到 anum,这与定义相矛盾。

对于您想做的事情,您可以改为定义一个接口(interface),并保存名称到实现的映射:

public interface Parameter {
public void process(Entity entity, Object obj, YamlConfiguration yml, String module);
}


// Somewhere else
Map<String, Parameter> parameters = ... // Initialise it with yours, allow the user to add their own

parameters.get(param.getKey()).process(entity, param.getValue(), yml, module);

关于java - 如何允许其他人通过 API 向类添加自定义枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35487046/

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