2013-05-22 29 views
1

只要我想问的是下列情况较好:使用参考VS getReference多次调用同一个对象

import com.x.x.x.Document; 
. 
. 
Document doc=user.getDoc(); 
MyFile file=Converter.getFile(doc.getFile()); 
MyTheme theme=Converter.getTheme(doc.getTheme()); 

OR

MyFile file=Converter.getFile(user.getDoc().getFile()); 
MyTheme theme=Converter.getTheme(user.getDoc().getTheme()); 

由于第一种情况,需要进口Document秒没有按” t并且同时第二次需要多次呼叫getDoc()首先并不这样哪个更好可读性&功能性

回答

3

的第一个样式,与当地doc,优越,主要是它的可读性:你的代码的读者不会有猜测(或阅读文档)如果getDoc()返回上多次调用同一个实例,请确保您在完全相同的实例上进行呼叫。

根据getDoc()的执行情况,性能可能会也可能不会成为问题。尽管如此,第一种使用方式(与doc)至少与第二种使用方式一样快。

1

由于第一种情况下,需要导入文件第二不

不知道你的意思:在这两个例子中,你需要你的文档的参考。这两个示例在功能和性能上都是相同的(假设getDoc仅仅是一个吸气器)。

我会使用,无论第一个版本的原因有两个:

  • 我觉得比连续方法更可读的调用
  • 如果你的用户是null,你会得到线Document doc = user.getDoc();一个NPE所以它会显而易见(在第二个示例中,如果您在MyFile file = Converter.getFile(user.getDoc().getFile());上获得NPE,则可能是用户或空文档)。
+0

其实它不需要导入,因为**文档**已经导入**用户**类 – YouYou

+1

@YouYou哦,你的意思是一个实际的'导入'声明?我也不会太在乎这个...... – assylias