用于定义对象联合的类

时间:2013-05-22 00:43:08

标签: java oop object union

所以..我有这个类,用户,并且任何用户都有一套书籍,我想要定义这个类之间的类和层次结构,所以如果我在两个用户之间建立联合,那么结果,我想要一个新的用户,他的一套书将是一个用户的书籍和另一个用户的书籍之间的联合。

提前致谢

2 个答案:

答案 0 :(得分:0)

您可以在User类中提供静态方法,称为unionUser(User first, User second),它将两个User实例作为参数,并返回一个新的User实例,其中包含Book个实例Set#unionAll() 1}}集,这将通过调用 public class User { private Set<Book> books; //provide accessors ... public static User unionUser(User first, User second) { User result = new User(); result.setBooks(first.getBooks().unionAll(second.getBooks()); return result; } ... } 方法来完成。

Book

结果java.util.Set集合中不会有重复项,因为正如{{1}}接口的Javadoc所述:

  

Set是一个不能包含重复元素的Collection。它   模拟数学集抽象。

答案 1 :(得分:0)

在用户中创建一个方法(如果他们有一个联合则返回一个新用户,否则返回null)或者将两个用户传递给用户的构造函数并让它创建联合,后者对我有意义,结果是无论他们是否有共同的书籍(无论如何都是OOP),联盟将是一个新用户。

但你有什么尝试? “最好的”方式并不总是最适合您应用的方式,如果您的想法是正确的并且代码不起作用,那么您可以在最佳情况下获得帮助;)

相关问题