2013-07-09 2 views
0

Я - Java noob. При написании кода, который использует статические или экземплярные методы, возвращающие ссылки на объекты, можно ли предположить, что они будут выполняться слева направо?экземпляр/статические методы, называемые слева направо?

http://developer.android.com/reference/android/os/Environment.html (см getExternalSto ... возвращает файл) http://developer.android.com/reference/java/io/File.html (см getAbsolutePath() возвращает строку)

т.е.

String storagePath = Environment.getExternalStorageDirectory().getAbsolutePath(); 

или вы должны сделать это в качестве меры предосторожности?

String storagePath = (Environment.getExternalStorageDirectory()).getAbsolutePath(); 
+0

Что такое безопасный gurad для 'String storagePath = (Environment.getExternalStorageDirectory()) .getAbsolutePath();' –

+0

Оба будут работать одинаково. нет необходимости в дополнительных скобках. –

ответ

1

Оператор . оставил ассоциативности т.е. операнды группируются слева

Итак, да это с уверенностью предположить, что они будут сгруппированы слева направо


Но что ассоциативность?

Когда операторы имеют одинаковый приоритет, ассоциативность определяет порядок, в котором операция performed..ie из left (операндов группируются слева) или right (операнды группируются справа) или none

+0

На самом деле, он оставил ассоциативность http://bmanolov.free.fr/javaoperators.php. – sandrstar

+0

@sandrstar so..What вы хотите сказать .. – Anirudha

+0

Именно эта ассоциативность слева направо называется слева, а не справа http://en.wikipedia.org/wiki/Operator_associativity – sandrstar

2

Конечно, никаких скобок не требуется. getExternalStorageDirectory() возвращает объект, а затем вы вызываете метод getAbsolutpath() этого объекта.

Смежные вопросы