Java中的Object []到Class []

时间:2010-02-02 08:26:45

标签: java

是否有任何内置的Java6方法(可能是lang或反射?)来执行:

private Class[] getTypes(final Object[] objects) {
    final Class[] types = new Class[objects.length];
    for (int i = 0; i < objects.length; i++) {
        types[i] = objects[i].getClass();
    }
    return types;
}

哪个接受一个Object数组并返回一个包含每个元素类型的数组?

4 个答案:

答案 0 :(得分:5)

不,JavaSE中没有内置功能。

没有太大的负担,当然,它很容易进行单元测试,只有几行。

如果你真的想要一些你自己不写的东西,那么有各种第三方库会为你做这些(例如Apache Commons Lang的ClassUtils,CGLIB的ReflectUtils),所以如果你已经有其中之一,你可以使用它们。

答案 1 :(得分:2)

在JDK中 - 没有。有apache commons-lang

ClassUtils.toClass(Object[] objects)

但是自己写它并不痛苦。

答案 2 :(得分:1)

我认为lambdaj具有此类功能的特征。

答案 3 :(得分:1)

不,没有更好的方法可以做到这一点。 但是,我认为这不重要。您已将代码打包为可重用的方法。如果需要从几个不同的类中使用它,只需在某个实用程序类中转换为公共静态方法。

一旦你完成了这个,那么,出于所有实际目的,你有一个方便的方法将ab数组的对象转换成一个类数组。换句话说,如果您已经以可重用的方式实现了某项服务,那么您就可以有效地扩展您的工具包。这项特定服务不属于“标准”JRE的范围并不重要。