0

您可以跳过 blabla 并转到“下面的示例”。 创建具有给定返回类型的方法时,调用该方法时是否创建了方法返回类型的实例?例如,如果我有一个 User 类,并且我创建了一个返回类型为 User 的方法,那么在调用它时是否在方法内部创建了一个新的 User 类实例?你能这么说吗?public Object getObject(...){...} 创建一个未初始化的对象,如下所示: public Object object; 您可以在方法中使用哪个?当方法中的返回类型被调用时,它会这样做: object = return(); 它返回一个在方法内声明的 Object 实例。我知道我得到了很糟糕的解释,也许其他人可以对其进行编辑,以使更多的 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;
}

但这没有多大意义。

4

3 回答 3

1

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

于 2012-05-10T12:20:46.317 回答
0

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

于 2012-05-10T12:20:54.740 回答
0

简而言之,没有。Java(尤其是 C 系列)不是这样工作的。看起来您有某种 Pascal 家庭背景,确实按照您所说的方式工作(嗯,几乎,因为返回值未初始化*)。

*:我指的是您的示例,而不是您的问题,因为它们相互矛盾

于 2012-05-10T12:22:00.840 回答