java引用不起作用

java引用不起作用,java,eclipse,jboss,Java,Eclipse,Jboss,我的任务是用新的Java8和新的boss(我们现在使用的是JBoss6.4)更新一些旧软件。我能够修正很多想法,但现在我面临一个与我所认为的java工作方式相反的问题 我们在代码中有这样的内容 com.mda.ohs.od.service.RetrieveSoShippingInfoRemote service = getRetrieveSoShippingInfoRemoteHome().create(); output = (VoaRe

我的任务是用新的Java8和新的boss(我们现在使用的是JBoss6.4)更新一些旧软件。我能够修正很多想法,但现在我面临一个与我所认为的java工作方式相反的问题

我们在代码中有这样的内容

    com.mda.ohs.od.service.RetrieveSoShippingInfoRemote service = getRetrieveSoShippingInfoRemoteHome().create();                        
output = (VoaRetrieveSoShippingInfo.Output) service.execute(input, output);

SoShippingInfoFormValueObject shippingInfoFormVoOutput = (SoShippingInfoFormValueObject ) output;
服务创建正确,输出正确。那么我们有

    com.mda.ohs.od.service.RetrieveSoSummaryRemote service = getRetrieveSoSummaryRemoteHome().create();
output = (VoaRetrieveSoShippingInfo.Output) service.execute(input, output);
输出已正确更新。这里是我的问题:shippingInfoFormVoOutput也应该更新(就像旧的java和jboss一样),但现在已经不是了,这会带来问题。 有人知道为什么我的作业中没有正确传递引用吗

SoShippingInfoFormValueObject shippingInfoFormVoOutput = (SoShippingInfoFormValueObject ) output;
这是java配置问题还是eclipse(我的IDE)或jboss


感谢

在对代码进行了更多的研究之后,我想就像@Dave Newton在他的评论中说的那样,引用从输出正确地传递到shippingInfoFormVoOutput。问题似乎出现在
output=(VoaRetrieveSoShippingInfo.output)服务中

输出的返回值赋值不使用已经存在的相同输出引用,而是创建一个新的输出引用,因此shippingInfoFormVoOutput和output现在不再引用相同的对象。为什么要为我的输出创建一个新对象,而不仅仅是更新已经存在的对象?

VoaRetrieveSoShippingInfo.output是否扩展了
SoShippingInfoFormValueObject
?我几乎可以保证“引用正确传递”。比如说,如果
output
的成员在
service.execute
中被修改,那么如果从
service.execute.execute返回的值是同一个对象,它们将在那里反映出来。我怀疑有什么东西比你在这里给我们看的代码更深。你叫什么“更新的”?从我在代码VoaRetrieveSoShippingInfo中看到的。输出并没有扩展SoShippingInfoFormValueObject。当我说更新时,我的意思是通过第二个服务为输出分配新的值。shippingInfoFormVoOutput也应该有这些新值,但它没有。