JSomething что-то = новый JSomething (). Что-то еще; - PullRequest
1 голос
/ 14 июня 2009

Я могу поклясться, что видел объект, созданный таким образом. Что делает что-то еще?

Ответы [ 3 ]

4 голосов
/ 14 июня 2009

Если понимать это буквально, то класс JSomething может иметь поле с именем somethingelse типа JSomething:

class JSomething {
    JSomething somethingelse;
}

В этом случае ссылку на JSomething, называемую somethingelse внутри JSomething, можно получить следующим образом:

JSomething something = new JSomething().somethingelse;

Однако я подозреваю, что это рассматривалось как часть шаблона проектирования , называемого шаблоном построителя - где вызов метода возвращает экземпляр того же типа.

Например, взять метод StringBuilder.append - он возвращает StringBuilder. Поэтому можно было бы сделать следующее:

StringBuilder sb = new StringBuilder("Hello").append("World!");
2 голосов
/ 14 июня 2009

Кажется, что новый JSomething () .thingelse - это просто доступ к полю. Может быть, плохо написанный статический доступ JSomething.somethingelse. Например Color color = new Color(0).black; вместо Color color = Color.black;.

0 голосов
/ 14 июня 2009

somethingelse в этом контексте будет экземпляром JSomething, который содержится в JSomething.

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