将接口实现为匿名内部时出错 class
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"
。但是通过观察代码,我清楚地使用匿名内部 class.
实现功能接口
当我在 Main
class 中构造一个空的 handle
方法时,代码工作正常,但我认为我不应该这样做。怎么回事!
原因是这一行:
public class Main extends Application implements EventHandler<ActionEvent>{
去掉 implements EventHandler<ActionEvent>
就好了。
您可能感到困惑,因为您让 Main
class 都实现了接口,并且您正在创建一个也实现接口的匿名内部 class。这给您留下了一个 class 实现了该方法——匿名内部 class。但是外面的Main
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"
。但是通过观察代码,我清楚地使用匿名内部 class.
当我在 Main
class 中构造一个空的 handle
方法时,代码工作正常,但我认为我不应该这样做。怎么回事!
原因是这一行:
public class Main extends Application implements EventHandler<ActionEvent>{
去掉 implements EventHandler<ActionEvent>
就好了。
您可能感到困惑,因为您让 Main
class 都实现了接口,并且您正在创建一个也实现接口的匿名内部 class。这给您留下了一个 class 实现了该方法——匿名内部 class。但是外面的Main
class 还没有实现这个方法,这就是你得到错误信息的原因。