2017-10-04 43 views
-6

我在調用其他類時遇到了一些使用函數的問題。Java使用函數

主要類:

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); 
} 

而且baseIteration功能:

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); 
    } 
} 

這還不是全部,但主要的問題:f.calculation是不確定的!

回答

0

那麼,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); 
    } 
} 
+0

它開始工作!非常感謝!現在算法有問題,但是它開始工作了!謝謝! – Maksym