我想从 GWT 中的类对象创建一个具有给定类型的新数组。
我的意思是我想模仿
java.lang.reflect.Array.newInstance(Class<?> componentClass, int size)
我需要发生这种情况的原因是我有一个库,它偶尔需要执行以下操作:
Class<?> cls = array.getClass();
Class<?> cmp = cls.getComponentType();
如果我正常传递一个数组类,这可以工作,但我不能从某个任意组件类型动态创建一个新数组。
我很清楚 GWT 缺乏反思;我明白这一点。然而,即使考虑到 GWT 的有限反射,这似乎也是可行的。我相信这是因为在实现中,存在一个不可访问的静态方法来为数组创建类对象。
同样,我理解数组方法只是 JavaScript 数组的类型安全包装器,因此应该很容易破解,即使需要 JSNI。
实际上,更重要的是获取类对象,我可以解决无法创建新数组的问题。