Java使用函数

Java使用函数,java,function,class,Java,Function,Class,调用另一个类时,我在使用函数时遇到一些问题 主要类别: public static void main(String [] args) { baseIteration(new Function() { public double calculate(double x) { return Math.sin(x) - Math.log10(x); } @Override public Object ap

调用另一个类时,我在使用函数时遇到一些问题

主要类别:

public static void main(String [] args) {
    baseIteration(new Function() {
        public double calculate(double x) {
            return Math.sin(x) - Math.log10(x);
        }

        @Override
        public Object apply(Object t) {
            // TODO Auto-generated method stub
            return null;
        }
    }.calculate(double x),0,10.0);
}
和基本迭代函数:

public static void baseIteration(Function f, double a, double b) {
    double prev = f.calculate(a);
    double step = (b-a)/10;
    for(double p = a+step; p<=b+10e-8; p+=step) {
        double curr = f.calculate(p);
    }
}
publicstaticvoidbaseiteration(函数f,双a,双b){
双上一个=f。计算(a);
双步骤=(b-a)/10;

对于(double p=a+step;pWell,
Function
没有
calculate
方法,它只有
apply
方法。您通常不需要显式实现
Function

请尝试以下操作:

public static void main(String [] args) {
    baseIteration(x -> Math.sin(x) - Math.log10(x), 0, 10.0);
}

public static void baseIteration(Function<Double, Double> f, double a, double b) {
    double prev = f.apply(a);
    double step = (b-a)/10;
    for(double p = a+step; p<=b+10e-8; p+=step) {
        double curr = f.apply(p);
    }
}
publicstaticvoidmain(字符串[]args){
baseIteration(x->Math.sin(x)-Math.log10(x),0,10.0);
}
公共静态void baseIteration(函数f,双a,双b){
双上一个=f。适用(a);
双步骤=(b-a)/10;

for(double p=a+step;pIt开始工作了!非常感谢!我现在对算法有问题,但是,它开始工作了!谢谢!