情况,里面有一个类和方法:
public class MyClass {
public MyClass {...}
public ... method1(...) {
...
while(...) {
...
for(...) {
method4(...);
}
}
}
public ... method2(...) {
...
while(...) {
...
for(...) {
method5(...);
}
}
}
public ... method3(...) {
...
while(...) {
...
for(...) {
method6(...);
}
}
}
public ... method4(...) {...}
public ... method5(...) {...}
public ... method6(...) {...}
}
方法1、2、3中的代码除了在循环内部调用方法4、5、6外,其他都是一样的。
问题是,是否有可能以某种方式将匹配代码组合在一个方法的框架内,并在方法 1、2、3 中简单地调用它,并分别在其他方法(在本例中为 4、5 和 6)的内部进行传输)? 据我所知,您不能只将方法作为参数传递。我对如何做得漂亮也没有任何其他想法。请告诉我。
如果
metod4,metod5,方法metod6需要不同的参数并且不能简化为单一类型的函数,那么创建一个标记并将适当的值从调用方法传递给将使用的通用方法会更容易switch:如果上述函数在返回类型和输入参数类型方面可以简化为某种通用类型,那么您可以定义自己的函数接口或使用现有的函数接口并将引用传递给相应的方法。
示例与
IntBinaryOperator具有自己的功能的示例:
可以(正如评论中告诉您的那样)将方法作为参数传递。
下面是一个将方法传递给需要字符串作为参数并返回字符串的方法的示例:
导入 java.util.function.Function;
将被显示