我一直在寻找一种处理双向关联的通用方法,以及一种处理手动编写的Java代码中的逆更新的方法.
对于那些不知道我在说什么的人,这里有一个例子.下面是我目前的(不满意)解决方案的结果.
public class A { public B getB(); public void setB(B b); } public class B { public List getAs(); }
现在,在更新关联的任何一端时,为了保持一致性,另一端也必须更新.每次手动
a.setB(b); b.getA().add(a);
或者通过在setter/getter中放置匹配代码并使用自定义List实现.
我发现了一个过时的,未维护的项目,其依赖关系不再可用(https://e-nspire-gemini.dev.java.net/).它通过使用用于自动注入必要代码的注释来处理问题.
有没有人知道另一个框架,以一种通用的,不引人注目的方式处理这个ala gemini?
ciao,Elmar
谷歌收藏(来自谷歌的内部代码) - http://code.google.com/p/google-collections/兼容Java Generics(不仅兼容,使用泛型非常好)
BiMap类 - http://google-collections.googlecode.com/svn/trunk/javadoc/index.html?http://google-collections.googlecode.com/svn/trunk/javadoc/com/google/common/ collect/package-summary.html 允许双向关联.
其中一些课程预计将进入JDK 7.