如何在java中组合两个对象

时间:2012-11-17 03:22:42

标签: java

我有2个对象需要在将其传递给另一个方法之前进行组合。

Status status1 = null;
Status status2 = null;  
Status statusCombined = null;   

status1 =  validationService.validateDocument(documentA);
status2 =  validationService.validateDocument(documentB);

if (!status1.equals(status2) {
//merge status1 and status 2 to  statusCombined
  setValidationStatus(validationResults,statusCombined);        

将这两个具有相同属性的对象组合在一起的命令是什么?

感谢。

2 个答案:

答案 0 :(得分:2)

  

将这两个具有相同属性的对象组合在一起的命令是什么?

在一般意义上,Java中没有“命令”(或方法)可以将两个对象的“属性”合并为一个,因为:

  • 在没有说“结合”意味着什么的情况下谈论“结合”两件事是没有意义的。
  • 即使在特定情况下确实有意义,但在一般情况下能够做到这一点也没有意义。
  • 即使它一般都有意义,它也会违反对象的封装。

如果你有一个确实有意义的特殊情况,那么你需要在Status类中添加一个方法或构造函数,从而产生两个现有状态的组合状态...使用你决定的任何算法在语义上合适。

答案 1 :(得分:1)

你很难弄明白你的意思(通过提供零细节)。

但是......以下是如何创建一个包含两个 Status 对象的类。

class CombinedStatus {

    private Status statusOne;
    private Status statusTwo;

    public CombinedStatus(Status s1, Status s2) {
        statusOne = s1;
        statusTwo = s2;
    }

    public Status getStatusOne() {
        return statusOne;
    }

    public Status getStatusTwo() {
        return statusTwo;
    }
}

如何使用它:

CombinedStatus cs = new CombinedStatus(status1, status2);

为了让我们提供更好的答案,您必须提供一些关于您所追求的细节。

例如:结合两种状态究竟是什么意思?

你把它们加在一起吗?乘以它们?执行一些逻辑操作?

如果你不告诉我们,我们不知道。