java - 用于管理双向关联和反向更新的通用 Java 框架

标签 java associations bidirectional inverse

我一直在寻找一种处理双向关联的通用方法,以及一种在手动编写的 Java 代码中处理反向更新的方法。

对于那些不知道我在说什么的人,这里有一个例子。下面是我目前的(不满意的)解决方案的结果。

public class A {
    public B getB();
    public void setB(B b);
}

public class B {
    public List<A> getAs();
}

现在,当更新关联的任何一端时,为了保持一致性,另一端也必须更新。要么每次手动

a.setB(b);
b.getA().add(a);

或者通过将匹配代码放在 setter/getter 中并使用自定义 List 实现。

我发现了一个过时的、无人维护的项目,其依赖项不再可用 ( https://e-nspire-gemini.dev.java.net/ )。它通过使用用于自动注入(inject)必要代码的注释来处理该问题。

有没有人知道另一个以通用的、不引人注目的方式处理这个问题的框架 ala gemini?

再见, 埃尔玛

最佳答案

google collections(来自 google 的内部代码)-- http://code.google.com/p/google-collections/ is Java Generics compatible(不仅兼容,还很好地使用了泛型)

类 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。

关于java - 用于管理双向关联和反向更新的通用 Java 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/169420/

相关文章:

mysql - 删除 MySQL 中的双向重复项

java - 哪种Java数据结构最适合双向多值映射

java - 为什么我的输出不符合预期? Java ACM

java - 使用大字节 [] 数组的 Applet A* 寻路 - 堆空间错误

postgresql - 通过不同的名称关联同一个模型两次

postgresql - Sequelize 关联外键

ruby-on-rails - has_many :through with a foreign key?

mongodb - Mongo 中的双向字典

java - html搜索和替换保留html标签

java - 如何在 javac/java 类路径中添加多个 .jar 文件 - 适用于 Debian Linux