<init>
方法。
据我所知,它代表了在构造函数中完成的初始化。
如果您尝试执行
Object.class.getDeclaredMethod("<init>");
你会得到java.lang.NoSuchMethodException
。
这种方法是什么?什么时候加入课堂? (在编译中 - 执行术语)它是虚拟的,一个无论如何可以覆盖它吗?
答案 0 :(得分:9)
查看Java Virtual Machine Specification,第2.9章。它在<init>
名称上说:
在Java虚拟机级别,使用Java编程语言(JLS§8.8)编写的每个构造函数都显示为具有特殊名称
<init>
的实例初始化方法。该名称由编译器提供。因为名称不是有效的标识符,所以它不能直接用在用Java编程语言编写的程序中。
这就是为什么<init>
可以在堆栈跟踪中找到,但无法通过代码访问。
答案 1 :(得分:7)
Java中的
<init>
方法是什么?
它是一个构造函数。这就是为什么当你尝试将其称为方法时,你得到NoSuchMethodException
。
可以覆盖吗?
没有
如果你看到<clinit>
方法,那就是类静态初始化“方法”。