0

在java中我将哪些参数传递给方法有关系吗?例如,我有一些验证方法。假设我有一个Person保存个人信息的类和另一个类中的一个方法来验证电子邮件收件人。在Controller我使用PersonValidator类的课堂上,我应该传递整个person对象,还是应该只传递带有 email 的 String person.getEmail()。在第一个选项中,该Person.validateEmail(Person person)方法可以调用person.getEmail(). 那么,传递的参数有多“大”有关系吗?我的意思是内存/ CPU。

4

3 回答 3

4

不,没关系,因为您传递的只是对相关对象的引用。有关详细信息,请参阅此问题和答案

一个例外是当方法调用是远程的时,整个对象图必须被序列化。这需要的时间取决于字段的数量和数据量。

于 2013-06-06T11:20:18.813 回答
0

java您传递 的整个对象时Person,您只需传递该对象的地址。所以,这样做你不是在处理整个对象,只是它的引用。

在这种情况下,就性能而言,你将传递什么并不重要:单个电子邮件地址或person包含该电子邮件的对象。

另一方面,这取决于您将来如何使用该方法。如果这个方法是某种utility方法,它对抽象的电子邮件做一些事情,那么通过String电子邮件只传递参数将是一个很好的接口解决方案。

于 2013-06-06T11:19:31.637 回答
0

Java 传递参数作为按值调用,而不是按引用调用。所以在对象的情况下,它只传递人员类的地址值。

于 2013-06-06T11:58:45.340 回答