Java 反射 - 编辑数组长度

标签 java reflection

我想知道是否可以使用 Java 反射 API 更改类的整数数组的长度。如果是,怎么办?

最佳答案

没有;创建一个固定长度的数组。

可以做的是通过在更大数组中使用副本修改字段的值来接近(使用Arrays.copyOf) ,只要您知道这样修改不会导致任何不一致。

/* desired length */
final int desired = ...;
/* the instance of the object containing the int[] field */
final Object inst = ...;
/* the handle to the int[] field */
final Field field = ...;
field.set(inst, Arrays.copyOf((int[]) field.get(inst), desired));

关于Java 反射 - 编辑数组长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12000604/

相关文章:

c# - 使用工厂时的反射成本

java - 使用 java 泛型类型进行类型转换

java - 创建具有不同目标对象的方法引用列表?

java - 显示 Android Studio 后 ConstraintLayout 制动

java - 100% cpu 在 java 中

java - 为什么 Java 不允许扩展数组类型

java - 如何从动态更新的json中获取最新数据?

java - 是否可以调用在 Java 方法中作为参数传递的 Scala 方法?

java - 在 Java 中反射 map

java - 具有泛型类的构造函数未定义