gpt4 book ai didi

java - 如何通过方法实现动态查找类?

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

我有一个类类型列表。我想找到一个有资格处理不同值的特定类。

在以下示例中,每个实现都必须提供 supports(String) 方法。并定义该类支持哪些值。

问题:列表中没有对象,而是类类型。因此我无法在它们上调用像 supports() 这样的自定义方法。

List<Class<MyService>> list;

public Object getInstanceThatSupports(String val) {
val = "TEST";

for (Class<MyService> c : list) {
if (c.supports(val)) { //TODO this is invalid
return c.newInstance().process(val);
}
}
}

public interface MyService {
boolean supports(String val);
void process(String val);
}

public class MyServiceImpl implements MyService {
@Override
public boolean supports(String val) {
return val.equals("TEST");
}

@Override
public void process(String val) {
//handle the value
}
}

我还能怎样实现这个目标?

最佳答案

你应该这样做List<MyInterface>因为你需要调用列表中所有元素的方法

List<MyInterface> list = Arrays.asList(new MyImpl(), new MyImpl2());
String val = "TEST";

for (MyInterface x : list) {
if (x.supports(val)) {
//TODO
}
}

关于java - 如何通过方法实现动态查找类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44326128/

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