我正在寻找一种方法来将额外的元数据存储到数组实例中。我已经能够通过使用字节码注入技术将额外的String字段直接注入到类文件二进制文件中来实现标准对象。
但是,为了使此策略起作用,.class文件必须可用于修改; java中的数组类没有相应的.class文件,因此无法在此庄园中进行检测。有没有其他切实可行的方法来实现这一目标?
我最好在java中实现它,而不必修改JVM C ++文件。除了额外的复杂层,这无疑会增加项目,走这条路线几乎肯定会破坏平台提供的高价值的可移植性。
答案 0 :(得分:1)
您可以查看WeakHashMap。
要匹配Map合约,您必须为要覆盖equals
和hashcode
方法的数组定义包装类。
然后定义一个元数据对象来处理自定义属性。
原型将是:
WeakHashMap<ArrayWrapper,MetaData> map;
map.put(new ArrayWrapper(primitiveArray), new MetaData("string1",...));