Java / операторы, содержащие несколько '.' операторы - PullRequest
0 голосов
/ 30 апреля 2018

В Java рассмотрим следующий фрагмент кода:

Vector v = new Vector();
for(int i = 1; i <= 10; i++)
{
    v.addElement(Integer.toString(i));
}
System.out.println(v.elementAt(9).toString());

Являются ли операторы Java, такие как v.elementAt(9).toString(), содержащие несколько символов '.' операторы вообще достаточно хороши или они вызывают какой-то определенный тип конфликта в течение определенного периода времени?

До сих пор я всегда держал их в качестве безопасных только в скобках, используя откладывание скобок вокруг отдельных утверждений, чтобы вообще не создавать конфликты любого типа.

(v.elementAt(9)).toString().

До сих пор я никогда не создавал подобных неоднозначных утверждений, подобных этому, за все время своего более чем десятилетнего опыта программирования и кодирования.

v.elementAt(9).toString().

1 Ответ

0 голосов
/ 30 апреля 2018

Являются ли такие операторы Java, как v.elementAt(i).toString(), содержащие несколько символов '.' все в порядке, или они вызывают какой-либо конкретный тип конфликта в течение определенного периода времени?

Они в порядке, с некоторыми оговорками. Если v.elementAt(i) равно null, то при вызове v.elementAt(i).toString() вы получите NullPointerException. Если вы выберете i в качестве некоторого значения, которое будет либо отрицательным, либо большим, чем Vector, я подозреваю, что также будет выброшено ArrayIndexOutOfBoundsException. Вы можете думать об этом синтаксисе как о композиции функций (слева направо), которая противоположна математике.

В вашем конкретном примере этот синтаксис логически эквивалентен:

(v.elementAt(i)).toString()
...