gpt4 book ai didi

java - 如何在声明实例之前将类方法作为参数传递?

转载 作者:行者123 更新时间:2023-12-01 09:28:26 24 4
gpt4 key购买 nike

我想做的就是这样。我的问题是如何在内部调用 tm.test 。

// TestMain is a class implemented handler

public void outer() {
inner(TestMain::test); // call inner
}

public void inner(handler h) {
TestMain tm = new TestMain();
//invoke tm.h(), i.e. invoke tm.test() in this example
}

public interface handler<M> {
void entitySelector();
}
  • 如果 tm 在外部方法中声明,我知道如何在内部调用 tm.test,即将函数作为 tm::test 传递
  • 但每次调用内部时我都必须声明该实例。

最佳答案

简单地说:你不能。即使这是可能的,你也不应该做那样的事情。

有一个“最小惊喜原则”:你不会让阅读你代码的人告诉你“wtf?!”因为你的代码让他们感到惊讶。

换句话说:你应该退后一步,看看你的设计是否真的有意义。例如,您不能使用固定的 tm 实例吗?一个在你的类里面占据一席之地的人;而不是方法中的局部变量?

关于java - 如何在声明实例之前将类方法作为参数传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39656019/

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