如以下文档中所述,您的
JavaFXSkel课程必须是:
public
Application
该
Application子类必须声明为public,并且必须有一个公共的无参数的构造函数。
JavaFX运行时
Application使用反射实例化子类的实例。它通过使用该类的公共no-
arg构造函数来实现。但是,您的
JavaFXSkel类没有显式声明任何构造函数,这意味着它具有隐式默认构造函数。默认构造函数与封闭类具有相同的访问修饰符,这是您所用的默认程序包访问。
Java语言规范
1的§8.8.9中提到了这一点:
__
如果一个类不包含构造函数声明,则默认构造函数被隐式声明。顶级类,成员类或本地类的默认构造函数的形式如下:
*除非该类缺少访问修饰符,否则默认构造函数具有与该类相同的访问修饰符,在这种情况下,默认构造函数具有程序包访问权限(第6.6节)。
*除了在非
private内部成员类中之外,默认构造函数没有形式参数,在默认情况下,默认构造函数隐式声明一个表示该类的直接封闭实例的形式参数(第8.8.1节,第15.9.2节,第15.9.3节)。
。
这意味着您
JavaFXSkel没有 公共的 无参数构造函数,因此没有
NoSuchMethodException。
1.不要指望初学者阅读过很多(如果有的话)JLS;我只是提供它作为正式参考。



