-1

在将其传递给另一个方法之前,我需要组合 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);        

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

谢谢。

4

2 回答 2

2

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

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

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

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

于 2012-11-17T03:46:43.980 回答
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);

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

例如:结合两种状态到底意味着什么?

你把它们加在一起吗?将它们相乘?执行一些逻辑运算?

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

于 2012-11-17T03:29:28.420 回答