是否可以从另一个类(在同一个类内,而不是从子类)调用构造函数?如果是,是怎么回事?调用另一个构造函数的最佳方式是什么(如果有几种方法可以做到这一点)?

推荐答案

是的,有可能:

public class Foo {
    private int x;

    public Foo() {
        this(1);
    }

    public Foo(int x) {
        this.x = x;
    }
}

要链接到特定的超类构造函数,而不是同一类中的构造函数,请使用super而不是this.请注意,you can only chain to one constructorit has to be the first statement in your constructor body.

另请参阅this related question,它与C#有关,但也适用相同的原则.

Java相关问答推荐

如果您仅同步写操作,Java布尔线程是否安全

伪类focus-in不适用于PFA中的选项卡

如何使用解析器组合子解析Java数组类型签名?

为什么Spring Boot项目无法为基于MySQL的CRUD应用程序找到从JPARepository接口扩展的ProductRepository?

如何在Microronaut中将 map 读取为 map

使用多个RemoteDatabase对象的一个线程

Docker不支持弹性APM服务器

在添加AdMob时无法为Google Play构建应用程序包:JVM垃圾收集器崩溃和JVM内存耗尽

try 使用Spring集成和MySQL实现发件箱模式时,锁定等待超时

如何在EL处理器中定义带有命名空间的变量?

项目react 堆中doOnComplete()和Subscribe()的第三个参数之间的差异

如何在不作为类出现的表上执行原生查询?

如何处理两个几乎相同的XSD文件?

在缺少字段时使用Jackson With Options生成Optional.Empty()

Java嵌套流查找任意值

在Java中将对象&转换为&q;HashMap(&Q)

如何使用Java ZoneID的区域设置?

在Java中比较同一多维数组的两个不同的字符串元素

谷歌应用引擎本地服务器赢得';t在eclipse上运行

MapStruct记录到记录的映射不起作用