[英]How to pass class method as a parameter before the instance is declared?
我想做的就是这样。 我的问题是如何在内部调用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();
}
简单地说:您不能。 甚至有可能,您也不应该那样做。
这里有一个“最少惊喜的原则”:您不是在阅读代码的人告诉您“ wtf ?!”。 因为您的代码使他们感到惊讶。
换句话说:您应该退后一步,看看您的设计是否真的如此。 例如,您不能使用固定的tm
实例吗? 属于您课堂上的一员; 而不是在您的方法中成为局部变量?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.