实例变量上的Java调用方法

adi*_*adi 4 java coding-style

有两种方法:

 String salary = company.getPerson(id).getData().getSalary();      
 String postcode = company.getPerson(id).getData().getPostCode();
Run Code Online (Sandbox Code Playgroud)

要么

Data data = company.getPerson(id).getData();    
String salary = data.getSalary();     
String postcode = data.getPostCode();
Run Code Online (Sandbox Code Playgroud)

哪种方式首选,为什么?除了可读性之外还有什么好处?

Jon*_*lor 7

如果该人不存在,我实际上更喜欢第三种选择

Person person = company.getPerson(id);
if(person != null) {
    Data data = person.getData();
    if(data != null) {
        String salary = data.getSalary();
        String postcode = data.getPostCode();
    }
}
Run Code Online (Sandbox Code Playgroud)

这取决于是否可能存在空值.如果您可以保证不会有空值,那么您可以消除部分/全部空检查.

正如另一位用户在下面的评论中指出的那样,可能存在这样的情况:在这种情况下,没有任何方法调用可以返回null,除非性能是一个问题,否则在我看来它真的会归结为个人偏好.

我可能仍然希望将它们分成单独的调用,即使没有空检查.