gpt4 book ai didi

java - 快速执行 "is many"的方法?

转载 作者:行者123 更新时间:2023-11-30 03:44:32 24 4
gpt4 key购买 nike

假设我们有一个接口(interface) IMyInterface,它有一些方法。现在我想要一个类,它是实现 IMyInterface 的对象的集合。

如果只有一种方法,我就可以做类似的事情

class ManyMyInterface{
List<IMyInterface> interfaces = new ArrayList<>();

void doSomething(){
for(IMyInterface i : interfaces){
i.doSomething();
}
}
}

但是如果我有很多方法,这个过程就会变得乏味。有没有更快的方法,比如使用可调用的方法,我可以做类似的事情

foreach function in IMyInterface do
ManyMyInterface.class.addfunction(function.name, function.parameters,{
for(IMyInterface i : interfaces){
i.function();
}
});

我知道由于类加载器的行为方式,java 不容易添加像上面的伪代码这样的函数,但是有没有一种 hack 或巧妙的方法来重现这种类型的行为?

最佳答案

对于 Java 8,您可以使用 Consumer<IMyInterface> :

void apply(Consumer<IMyInterface> consumer) {
for(IMyInterface i : interfaces){
consumer.accept(i);
}
}

并使用以下方式调用该方法:

apply(i -> i.doSomething());

或使用方法引用:

apply(IMyInterface::doSomething);

使用 Java 7 - 您可以提供实现类似接口(interface)的匿名类。

关于java - 快速执行 "is many"的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26067379/

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