我已经注册了一段时间,通常只有在找不到答案时才会发布帖子,而现在,我感到非常困惑。
最近我才开始熟悉Java Lambda表达式(主要是函数表达式)例如BinaryOperator和Bifunction。在查看它们的源代码时,我发现你将它们声明为:
public interface BiFunction<T, U, R> {...}.
所以我认为没有办法在运行时动态创建一个类似于BiFunction但具有多个参数和“方程式”的接口。
我将给出一个实际的例子,我认为这将更好地解释我想要解决的问题类型:
假设我想制作一个程序,用户可以输入一个数学函数并在一个点上进行评估。首先,让我们假设它是一个单变量函数:
Function<Integer,Integer> f1 = (x) -> Math.pow(x,2);
除非我在运行时定义函数f(x) = x^2,否则这将是解决问题的方法。
我想知道是否有一种方法可以在运行时创建一个函数,询问用户他们想输入哪个函数。
如果用户可以输入具有多个参数的方程,则此问题可能更加复杂。
感谢任何帮助。
Max