3
4

2 回答 2

5

在这种情况下如何进行回调?由于它的复杂性和丑陋,我更愿意避免这种解决方案。即使它是最不痛苦的,我也不知道如何在这里实现它。

由于 Java 中没有函数指针,因此您必须改用通用接口。然后,您的函数必须是该接口的实现。是否要为那些实现类 (ie class F1 extends Function { … }) 或匿名类 ( ie ) 使用名称取决于您new Function { … }。您是否在该类中编写实现,或者让类实现调用您现有的静态函数之一也取决于您。

举一个例子,匿名类直接包含实现:

public class Integrals 
{

    public interface Function {
        double eval(double x);
    }

    public static final Function f1 = new Function() {
      public double eval(double x) {
        return x*5+Math.sin(x);
      }
    };

    public static final Function f2 = new Function() {
      public double eval(double x) {
        return Math.pow(x*f1.eval(-x),x);
      }
    };

    public static double TrapezoidalIntegration(double a,double b,int n,Function f)
    {
        // … using f.eval(x) to compute values
于 2013-03-31T21:02:38.930 回答
2
于 2013-03-31T20:29:41.137 回答