将元数据添加到数组实例

时间:2013-06-03 15:44:41

标签: java instrumentation

我正在寻找一种方法来将额外的元数据存储到数组实例中。我已经能够通过使用字节码注入技术将额外的String字段直接注入到类文件二进制文件中来实现标准对象。

但是,为了使此策略起作用,.class文件必须可用于修改; java中的数组类没有相应的.class文件,因此无法在此庄园中进行检测。有没有其他切实可行的方法来实现这一目标?

我最好在java中实现它,而不必修改JVM C ++文件。除了额外的复杂层,这无疑会增加项目,走这条路线几乎肯定会破坏平台提供的高价值的可移植性。

1 个答案:

答案 0 :(得分:1)

您可以查看WeakHashMap

要匹配Map合约,您必须为要覆盖equalshashcode方法的数组定义包装类。 然后定义一个元数据对象来处理自定义属性。

原型将是:

WeakHashMap<ArrayWrapper,MetaData> map;
map.put(new ArrayWrapper(primitiveArray), new MetaData("string1",...));