方法本身使用方法返回值

时间:2012-05-10 12:17:34

标签: java methods return-type

你可以跳过blabla并转到'下面的例子'。 在创建具有给定返回类型的方法时,是否在调用方法时创建了返回类型方法的实例?例如,如果我有一个User类,并且我使用User返回类型创建了一个方法,那么在调用方法时是否在方法内创建了一个新的User类实例? 就像你能说的那样; public Object getObject(...){...}创建一个未初始化的对象,如下所示:public Object object;哪个可以在方法中使用?当调用方法中的返回类型时,它会执行以下操作:object = return();它返回在方法内声明的Object实例。我知道我得到了可怕的解释maby别人可以编辑它以使更多的stackoverflow观众更清楚。

以下示例: 例如,这在某种程度上是可能的:

public UserObject getSomethingDone(User user){ 
getSomethingDone.setSomething(user.getSomething);
return getSomethingDone;
}

而不是:

public UserObject getSomethingDone(User user){ 
UserObject userObject = new UserObject();
userObject.setSomething(user.getSomething);
return userObject;
}

修改 nvm愚蠢的问题,因为我说它可能会创建一个单元化的对象实例,但当然你不能使用一个单元化的对象实例,因为它没有被初始化直到返回。那么这可能是可能的:

public UserObject getSomethingDone(User user){ 
getSomethingDone = new UserObject();
userObject.setSomething(user.getSomething);
return userObject;
}

但这没有多大意义。

3 个答案:

答案 0 :(得分:1)

您可以使用反射API获取方法的返回类型,但是比简单地实例化返回类型的新对象要麻烦得多。

答案 1 :(得分:0)

不,不执行隐式对象创建。在Java中,您曾经明确地创建了返回对象。

答案 2 :(得分:0)

简而言之,没有。 Java(特别是C系列)不能那样工作。看起来你有一些Pascal家族背景确实按照你说的方式工作(好吧,差不多,因为返回值未初始化*)。

*:我指的是你的例子,而不是你的问题,因为它们是矛盾的