Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
类作为方法(JAVA)中的参数传递(BUKKIT/spiget)(自定义事件系统)_Java_Events_Bukkit - Fatal编程技术网

类作为方法(JAVA)中的参数传递(BUKKIT/spiget)(自定义事件系统)

类作为方法(JAVA)中的参数传递(BUKKIT/spiget)(自定义事件系统),java,events,bukkit,Java,Events,Bukkit,我正试图重写Bukkit的事件系统,它可能被使用如下: Bukkit.getPluginManager().registerEvents(新侦听器(){ @事件处理程序 公共无效OneEvent(PlayerJoinEvent e){ Player=e.getPlayer(); 发送消息(“欢迎!”); } },这个); 然而,这很费时,需要花时间写出。为了改进我的工作流程(大幅度地),我正试图将这个系统改写成更可行、更灵活的系统 下面是如何使用我理想的格式/方法: EventBus.regi

我正试图重写Bukkit的事件系统,它可能被使用如下:

Bukkit.getPluginManager().registerEvents(新侦听器(){
@事件处理程序
公共无效OneEvent(PlayerJoinEvent e){
Player=e.getPlayer();
发送消息(“欢迎!”);
}
},这个);
然而,这很费时,需要花时间写出。为了改进我的工作流程(大幅度地),我正试图将这个系统改写成更可行、更灵活的系统

下面是如何使用我理想的格式/方法:

EventBus.register(PlayerJoinEvent.class,e->{
Player=e.getPlayer();
发送消息(“欢迎!”);
},这个);
目前,我有:

public static void register(Class<? extends Event> clazz, Consumer<Event> consumer, JavaPlugin plugin) {
     consumer.accept(clazz.newInstance());
     // Bukkit.getPluginManager().registerEvents(e, plugin); // ???

}

publicstaticvoidregister(Class您可以使用泛型执行此操作,这样您就可以在方法中拥有一个类型为的“变量”

public static <T extends Event> void register(Class<T> clazz, Consumer<T> consumer, JavaPlugin plugin) {
     ...
}
publicstaticvoidregister(类clazz、消费者、JavaPlugin-plugin){
...
}

您可以使用泛型执行此操作,通过泛型,您可以在方法中拥有一个类型的“变量”

public static <T extends Event> void register(Class<T> clazz, Consumer<T> consumer, JavaPlugin plugin) {
     ...
}
publicstaticvoidregister(类clazz、消费者、JavaPlugin-plugin){
...
}

很抱歉响应太晚。这是怎么回事?我该如何处理?你知道我可以使用哪些指南吗?事实上,我已经做到了。在这个意义上泛型还有其他实际用途吗?你可以在类级别上使用泛型,这样你就可以对某些方法的输入施加更多的限制。很抱歉响应太晚。你是怎么做到的这项工作以及我将如何完成这项工作?你知道我可以使用哪些指南吗?事实上,这项工作已经开始。泛型在这个意义上还有其他实际用途吗?你可以在类级别上使用泛型,这样你就可以对某些方法的输入施加更多的约束。