我从JavaScript背景开始学习Java,并想知道是否在Java中编写类似的函数是可能的。以下是JavaScript示例:
function getBalance(side, date) {
let balance;
let getPrice = (f) => {
while ((result = f(date)) == 0) {
date++;
}
return result;
}
if (side) {
let price = getPrice(getPrice1);
// Some calculations
return balance;
} else {
let price = getPrice(getPrice2);
// Some calculations
return balance;
}
}
在这里,getPrice1和getPrice2是事先定义的函数。使用回调有助于使代码简洁。我不确定在Java中是否可以在不声明额外接口的情况下将函数作为参数传递。
我之所以问这个问题,是因为它是我遇到的一个真实任务的简化示例。您认为最优雅的解决方案是什么?
P.S. 看起来函数式接口是这里的方法。
getPrice
方法接受一个接口实例,并调用该接口定义的方法,在两个不同的类中以不同的方式实现。 - Aaron