有一个类A,它具有一个未定义的方法,称为OnEvent。我希望通过实例化类A Object的类来定义此方法。

像这样:

public class A{
    int someVar=1;
    float anotherVar=2;

    public void method1(){
        ...

        if( event )
            OnEvent();
        ...
    }

    //OnEvent is not defined!!
    OnEvent();
}

和另一个类,在不同的包中:
public class B{
    A objA = new A();

    public void method1(){
        //I need to do something like
        objA.setOnEvent( this.OnEvent() );
       }

    OnEvent(){
        //Do something
    }

}

我已经查过了,接口和/或lambda表达式是实现此目的的方法,但我一直无法成功完成。您能否提供一些有关这样做的指示?

最佳答案

您可以将Aabstract(也可以使用OnClick()方法abstract)`。

然后,您可以直接提供A的实现来创建OnClick()的匿名实例。

例如:

public abstract class A{
    ...

    public abstract void OnEvent();
}

public class B{
    A objA = new A() {
        public void OnClick() {
            //OnClick implementation
        }
    };
    ...
}

10-07 13:07