gpt4 book ai didi

java - 赋予函数创建由 String 参数定义的新对象的能力

转载 作者:行者123 更新时间:2023-12-01 09:56:21 26 4
gpt4 key购买 nike

现在很难解释。假设我有一个带有参数 x 的函数 create,它接受一个字符串。是否可以赋予 create 函数创建由 定义的新对象的能力?:

public void create(String x) {
this.stuff = new x();
}

最佳答案

如果你只有 4 个不同的 Strings传入后,进行切换比使用反射进行修改更容易。特别是对于超过 4 个不同值的另一种选择是创建 Map<String, YourInterface>所以你可以用 this.stuff = map.get(x); 获取对象。这要求您的对象是无状态的。

switch(x) {
case "Foo":
this.stuff = new Foo();
break;
case "Bar":
this.stuff = new Bar();
break;
// etc.
}

或者如果您可以使用相同的引用,则可以采用更优雅的方式:

Map<String, IAttack> attackMap = new HashMap<>();  // Assuming IAttack is an interface implemented by your classes
public MyClass() {
attackMap.put("Foo", new Foo());
attackMap.put("Bar", new Bar());
}

public void create(String x) {
this.stuff = attackMap.get(x);
}

关于java - 赋予函数创建由 String 参数定义的新对象的能力,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37187631/

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