我有一个java对象,我想从constuctor定义它的一个函数。如何在构造函数中定义对象的函数?
基本上是这样的。
public class Thing{
public Thing(String str){
//define F
}
public float F(float x){
//to be defined
}
}
我的目标是让Thing对象构造器以字符串的形式(例如“2 * x”)接受数学函数,解析它并定义F函数以预先形成该表达式。因此,如果我要创建一个新的Thing对象
Thing test = new Thing("2*x");
测试对象的F函数将像这样定义
public float F(float x){
return 2*x;
}
我是以错误的方式解决这个问题吗?
答案 0 :(得分:0)
试试这个。
enter code here
答案 1 :(得分:0)
您应该将Function
传递给构造函数:
public class Thing {
private DoubleFunction<Float> func;
public Thing(DoubleFunction<Float> func) {
this.func = func;
}
public float F(float x) {
return func.apply(x);
}
}
用法:
DoubleFunction<Float> myFunc = d -> d * 2;
Thing thing = new Thing(myFunc);
thing.F(2.0); // Result in 4.0