[英]Error implementing interface as anonymous inner class
我正在使用Intellij IDEA學習JavaFX。 編譯以下代碼時:
public class Main extends Application implements EventHandler<ActionEvent>{
//More code
button.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
System.out.println("Hello World");
}
//More code
});
我收到錯誤消息"Class must either be declared abstract or implement abstract method"
。 但是通過觀察代碼,我顯然可以使用匿名內部類來實現功能接口。
當我在Main
類中構造一個空的handle
方法時,代碼可以正常工作,但我不認為我必須這樣做。 到底是怎么回事!
原因是此行:
public class Main extends Application implements EventHandler<ActionEvent>{
刪除implements EventHandler<ActionEvent>
,您就很好。
您可能會感到困惑,因為您已經使Main
類都實現了該接口,並且正在創建一個也實現該接口的匿名內部類。 這樣就剩下一個實現了該方法的類-匿名內部類。 但是外部Main
類尚未實現該方法,這就是為什么您收到錯誤消息的原因。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.