这个问题在这里已有答案:
- <init>在Java异常中表示什么? 2个答案
9732
2017-12-05 17:45
起源
有关: stackoverflow.com/q/8517121/1725096 - Jens Piegsa
答案:
看看吧 Java虚拟机规范,第2.9章。它说的 <init>
名称:
在Java虚拟机级别,使用Java编程语言(JLS§8.8)编写的每个构造函数都显示为具有特殊名称的实例初始化方法
<init>
。该名称由编译器提供。由于名称不是有效标识符,因此不能直接在使用Java编程语言编写的程序中使用。
这就是为什么 <init>
可以在堆栈跟踪中找到,但无法通过代码访问。
8
2017-12-05 17:54
什么是
<init>
Java中的方法?
它是一个构造函数。这就是为什么你得到一个 NoSuchMethodException
当你尝试将其称为方法时。
可以覆盖吗?
没有。
如果你看到了 <clinit>
方法,即类静态初始化“方法”。
7
2017-12-05 17:47
+1,但是 <init> 也可以引用实例字段的初始化 - 而不仅仅是构造函数。 - Fabian Barney
@FabianBarney部分正确,因为实例字段的初始化发生在每个构造函数的开头。 - Pshemo
@Pshemo Ehrm,你是对的! :-) - Fabian Barney