在Java中,有一个Class
类可以用来表示其他类,而无需实例化它们。例如:
Class[] foo = { ArrayList.class, String.class, Character.class, Integer.class, MyCustomClass.class };
ArrayList bar = foo[0].newInstance();
将是有效的代码。例如,我还可以运行一个Object
数组,并对foo
数组中的相应类进行instanceof
检查,该数组具有潜在的应用。
Java 中是否存在这样的接口类?有没有一些类我可以做类似的事情:
Interface[] foo = {Comparable, List<String>, MyCustomInterface}
由于从Java 8开始,接口现在可以有静态方法,因此这种行为可能很有用,如果做法不好。它存在吗?
接口只是一个Class.isInterface()
返回 true 的类。所以:
Class<?>[] foo = {Comparable.class, List.class, MyCustomInterface.class};
请注意,没有泛型类实例,例如 List<String>
:这只是原始List.class
。