Новичку в Java нужна помощь в поиске дальнейшего прочтения «new classname (). WithXxx (param)» и синтаксиса ClassName.class.method - PullRequest
1 голос
/ 24 мая 2011

Я искал в Google / stackoverflow различные термины, но все они слишком широки, чтобы точно определить, что я пытаюсь найти.

Я просто смотрю код API AWS и хочу узнать, какчтобы создать свой собственный код, подобный этому, который, я предполагаю, передает параметры, используя стиль цепочки:

ListDomainsRequest sdbRequest = new ListDomainsRequest().withMaxNumberOfDomains(100);
                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

, а также использует здесь ключевое слово class:

AwsConsoleApp.class.getResourceAsStream("AwsCredentials.properties")
              ^^^^^

Как называются эти техники?Спасибо!

Ответы [ 2 ]

1 голос
/ 24 мая 2011

Я думаю, что вы имеете в виду Свободный интерфейс .Быстрый вики-фрагмент: ...

Свободный интерфейс обычно реализуется с помощью цепочки методов для передачи контекста инструкции последующего вызова

Здесьтакже хороший пост в блоге от Adewale Oshineye, в котором также приведены некоторые общие соображения по этому вопросу.

[обновление] Я только что понял, что ваш вопрос о классе отделен от первого.Для этого вам просто нужно понять, что .class - это способ доступа к типу объекта java.lang.Class, который в некоторых случаях полезен.

0 голосов
/ 24 мая 2011

Второй обычно называется литералом класса , и это просто особенность языка Java, обрабатываемая компилятором.В итоге он переводится в кэшированный вызов на Class.forName().

Первый - просто цепочка методов ;идея состоит в том, что любой метод, который возвращает объект, к которому он был вызван, может бесконечно объединяться в цепочку таким образом.Кому-то это нравится, кому-то это кажется мерзостью.Контингент мерзости со временем уменьшился.

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