创建变量中定义的Class的ArrayList

时间:2018-05-23 00:08:36

标签: java list generics arraylist

假设我有类似的东西

Class klazz = Integer.class;

我有兴趣做这样的事情

List<(klazz Class)> something = new ArrayList<>();

something.add(new Integer(..))
something.add(new Integer(..))
.. etc

我可能需要使用反射,但是,我不确定如何应用它。

有可能没有反思吗?如果不是,你会怎么发现它适合实施?

提前致谢

1 个答案:

答案 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)