是否有任何内置的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数组并返回一个包含每个元素类型的数组?
答案 0 :(得分:5)
不,JavaSE中没有内置功能。
没有太大的负担,当然,它很容易进行单元测试,只有几行。
如果你真的想要一些你自己不写的东西,那么有各种第三方库会为你做这些(例如Apache Commons Lang的ClassUtils
,CGLIB的ReflectUtils
),所以如果你已经有其中之一,你可以使用它们。
答案 1 :(得分:2)
答案 2 :(得分:1)
我认为lambdaj具有此类功能的特征。
答案 3 :(得分:1)
不,没有更好的方法可以做到这一点。 但是,我认为这不重要。您已将代码打包为可重用的方法。如果需要从几个不同的类中使用它,只需在某个实用程序类中转换为公共静态方法。
一旦你完成了这个,那么,出于所有实际目的,你有一个方便的方法将ab数组的对象转换成一个类数组。换句话说,如果您已经以可重用的方式实现了某项服务,那么您就可以有效地扩展您的工具包。这项特定服务不属于“标准”JRE的范围并不重要。