gpt4 book ai didi

java - 当工厂方法是默认(非静态)时,如何在Java中创建实例

转载 作者:行者123 更新时间:2023-12-01 17:59:35 25 4
gpt4 key购买 nike

class X {                         
private int i;
private X(){}
X factory(int v){ // d
X r = new X();
r.i = v;
return r;
}
}

如何使用这部分代码创建 X 的实例?我可以想到反射(reflection),但我认为这太复杂了。有没有更简单的方法来解决这个问题? (不要在工厂方法中添加static,也不要删除构造方法的private关键字)。

最佳答案

您可以使用这样的构建器内部类(出于测试目的添加main方法,当然您可以从此类外部调用X.Builder):

class X {
private int i;

private X() {
}

public static class Builder {

public static X factory(final int v) { // d
X r = new X();
r.i = v;
return r;
}
}

public static void main(String[] args) {


X myX = X.Builder.factory(42);
}
}

关于java - 当工厂方法是默认(非静态)时,如何在Java中创建实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42072346/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com