假设我有类似的东西
Class klazz = Integer.class;
我有兴趣做这样的事情
List<(klazz Class)> something = new ArrayList<>();
something.add(new Integer(..))
something.add(new Integer(..))
.. etc
我可能需要使用反射,但是,我不确定如何应用它。
有可能没有反思吗?如果不是,你会怎么发现它适合实施?
提前致谢
答案 0 :(得分:2)
我无法完全满足要求,但这可能有所帮助:
std::string strJson = R"({"foo": "bar"})";
Json::CharReaderBuilder builder;
Json::CharReader* reader = builder.newCharReader();
Json::Value json;
std::string errors;
bool parsingSuccessful = reader->parse(
strJson.c_str(),
strJson.c_str() + strJson.size(),
&json,
&errors
);
delete reader;
您可以使用public class Main {
public static void main(String[] args) {
ContainerWrapper<Integer> containerWrapper = new ContainerWrapper<>(Integer.class);
containerWrapper.add(1);
System.out.println(containerWrapper.containerType());
System.out.println(containerWrapper.isInteger());
}
}
class ContainerWrapper<T> {
// Store type information here
private Class<T> clazz;
private List<T> list = new ArrayList<>();
public ContainerWrapper(Class<T> clazz) {
this.clazz = clazz;
}
public void add(T element) {
list.add(element);
}
public Class<T> containerType() {
return clazz;
}
public boolean isInteger() {
return clazz.isAssignableFrom(Integer.class);
}
}
T
类型
输出:
clazz.isAssignableFrom(*.class)