众所周知,Java程序将从public static void main(String[] args)类的方法开始执行.
所以很奇怪知道我们可以通过其他任何方式将另一个静态方法作为入口点,也就是说我们可以覆盖JVM的这个属性,以除了main之外的其他方法开始吗?
AFAIK JVM始终以main方法开头.我能找到的唯一官方参考是java语言规范的第12.1.4节,其中规定:
12.1.4调用Test.main
最后,在完成类Test的初始化之后(在此期间可能发生了其他相应的加载,链接和初始化),调用Test的方法main.
方法main必须声明为public,static和void.它必须接受一个字符串数组的参数.
不过,这对我来说似乎并不是一个可怕的限制.从技术上讲,您可以编写一个"MainSelector"类,其main()将类和方法的完全限定名称作为命令行参数,并使用反射来调用该方法.
| 归档时间: |
|
| 查看次数: |
582 次 |
| 最近记录: |