gpt4 book ai didi

java - 我可以通过字符串名称引用类吗?

转载 作者:行者123 更新时间:2023-12-02 04:07:54 24 4
gpt4 key购买 nike

我有一个实用程序列表,派生自:

abstract public class BaseUtil implements Callable{
public String name;
public StreamWrapper data;
public void setData(StreamWrapper stream){ this.data = stream; }
private static Class me = BaseUtil.class;
private static Method[] availableUtilities = me.getDeclaredMethods();
public static Method[] getUtilities(){ return availableUtilities; }
}

我希望在每个节点上都能够为其分配一个实用程序,例如:

Initialize(String utilName){
activeUtility = utilName;
gk = new GateKeeper(BaseUtil.getUtilities() <something>);
}
<小时/>
public class GateKeeper {
GateKeeper(BaseUtil util) {
this.util = util;
}

private BaseUtil util;

但我不确定如何从传入的字符串中获取特定的实用程序类。示例实用程序是:

public class WordLengthUtil extends BaseUtil {
private String name = "WordLength";
public Integer call() {
System.out.println(this.data);
return Integer.valueOf(this.data.length());
}
}

最佳答案

您可以使用反射:

String name = "WordLength";
String className = hashMap.get(name);

Callable plugin = (Callable) Class.forName(className).newInstance();

使用HashMap来存储className和字符串标识符之间的绑定(bind)

关于java - 我可以通过字符串名称引用类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34082074/

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