java如何将一个具体方法作为参数传递给另一个具体方法
我是java的新手,正在开发一个真实的项目。到目前为止,我有很多方法和大约2500行代码。许多方法略有不同(通常只是一个标识符的差异),因此我不得不一次又一次地复制代码,并做一些细微的更改。 我想要的是将一个方法作为参数传递给另一个方法,我已经经历了lambda表达式 但由于我自己在概念上的缺陷,我觉得它不够吸引人。因为它告诉我们要定义要传递的每个方法的函数接口。但按照我的想法,它不会给我一个通用代码,这样我将来就可以简单地添加一些其他表
我正在写一段代码来演示和更好地解释我的问题
if(houseTabPanel.getComponentCount()==0){
houseTableDb();
}
if(isSelected){
selection(houseTable);
}
else {
houseTable.setColumnSelectionAllowed(false);
houseTable.setRowSelectionAllowed(false);
houseTable.setCellSelectionEnabled(false);
Rselection(houseTable);
}
现在我有了不同的方法,名为houseTableDb()、plotTableDb()、adminTableDb()等等。 我想为这段代码创建一个方法,并将plotTableDb()等作为参数传递。。 比如
public void genericMethod(JPanel p, JTable t, some method reference to use instead of houseTableDb){}
如果我描述得不够详细,请原谅。。任何回应都会受到内心深处的感激
# 1 楼答案
你可以这样做:
用法:
实施:
# 2 楼答案
如果所有这些方法都具有相同的签名,则可以使用具有该签名(返回值、参数列表)的单个方法定义接口。然后编写实现该方法的类,每个类对应一个方法的实现。要传递该方法,需要创建该类的对象并传递该对象。对实际方法的调用将替换为对接口中定义的方法的调用
但为了避免所有这些混乱:这就是为什么添加了Lambda