class 内的 main() 与接口内的 main()
main() inside a class vs. main() inside an interface
我的问题是接口内的 main() 是否比 class.
内的 main() 有任何优势
public interface Main {
public static void main(String[] args) {
System.out.println("Hello world!");
}
}
Java 8 允许接口内的静态方法。
这是在接口中使用 main() 成为可能的唯一原因,而以前是不可能的。
吹毛求疵,接口中的 main 给它 access_flags ACC_INTERFACE 和 ACC_ABSTRACT (因为应该实现接口方法)。这意味着您也可以在 class 中实现 main(),造成混淆。
出于这个原因,加上使接口内的 main() 成为可能的偶然事件过程,我建议在 class.
内使用 main()
除此之外,在 class 或接口内使用 main() 没有区别。
接口中 main() 的可能好处
由于 main() 非常特定于程序,因此只有一个用例,如果有一个... Mainable
接口会很方便:debug。
给定一个足够通用的 main() 和适当的参数,您可以将它用作驱动程序来调试 classes,方法是将它们变为“Mainable”,一次一个,并节省时间避免为每个重写 main() class。您可以回收代码。
虽然它有点边界线并且可能不值得努力使所有 Mainable
classes 与此 main() 兼容,但可以做到。这是一个可能性来说明。
我的问题是接口内的 main() 是否比 class.
内的 main() 有任何优势public interface Main {
public static void main(String[] args) {
System.out.println("Hello world!");
}
}
Java 8 允许接口内的静态方法。
这是在接口中使用 main() 成为可能的唯一原因,而以前是不可能的。
吹毛求疵,接口中的 main 给它 access_flags ACC_INTERFACE 和 ACC_ABSTRACT (因为应该实现接口方法)。这意味着您也可以在 class 中实现 main(),造成混淆。
出于这个原因,加上使接口内的 main() 成为可能的偶然事件过程,我建议在 class.
内使用 main()除此之外,在 class 或接口内使用 main() 没有区别。
接口中 main() 的可能好处
由于 main() 非常特定于程序,因此只有一个用例,如果有一个... Mainable
接口会很方便:debug。
给定一个足够通用的 main() 和适当的参数,您可以将它用作驱动程序来调试 classes,方法是将它们变为“Mainable”,一次一个,并节省时间避免为每个重写 main() class。您可以回收代码。
虽然它有点边界线并且可能不值得努力使所有 Mainable
classes 与此 main() 兼容,但可以做到。这是一个可能性来说明。