Java - 是否可以在构造函数中编写 public void()?

Java - Is it possible to write public void() in Constructor?

如果可以在构造函数部分写入 public void,我找不到信息。可能吗?

在字节码级别,构造函数始终为空,因此指定它是多余的。也就是说,构造函数总是被称为 <init>VV 是 return 类型,其中 V == void。类似地,静态初始化程序是 <clinit>V 如果您在这些方法中进行堆栈跟踪(例如打印异常),您将看到此符号。

构造函数实际上将要初始化的对象作为参数,因为对象是在调用构造函数之前创建的。注意:您可以在不使用 Unsafe.allocateInstance(Class)

调用构造函数的情况下创建对象

I couldn't find information if it is possible to write public void in constructor section. Is it possible?

不能这样写,因为Java构造器和方法的区别在于它必须和class同名,而且不能指定return 类型。如果您指定 return 类型,它会假定它是一种方法。

符号 x = new Clazz() 也将 return 值的数量限制为 1,即对象。没有简单的方法可以将此表示法修改为 return 个以上的对象。也就是说,为构造函数支持 return 类型并不容易。

如果您想定义一个 return 类型,很可能您正在考虑这样的因子方法。

public static MyInterface createObject() {
    return new MyClass();
}

请注意 return 类型与实际创建的 class 有何不同,但仍然只有一个引用 returned.

Java Language Specification 中定义了构造函数语法。其他都不正确。

问题不清楚。 Peter Lawrey 回答了一种解释,这是对另一种解释的回答。

您不能在构造函数中声明方法。但是,您可以声明一个 class 并声明变量。

因为您可以在构造函数中声明 class,所以您可以在 class 中声明一个方法,然后使用 class。如果该方法不是静态的,则可以构造 class.

的对象

不,Java 只允许在 class 中声明一个方法,不能在另一个方法或 constructor.Indirectly 中声明,您可以这样做:

public A() {
  class B {
     public void m() {
     }
         }
    }