|
|
|
Есть аналог оператора with Делфи?
|
|||
|---|---|---|---|
|
#18+
Добрый день! Есть ли в java аналог оператора with Делфей, который позволяет сократить запись, например: Код: java 1. 2. 3. 4. 5. 6. 7. 8. Зачем это: есть в EJB два класса, один с интерфейсом EJB1, второй без EJB2. У класса EJB1 есть метод getEJB2, который возвращает ссылку на класс EJB2. Чтобы не делать инерфейс к классу EJB2 хочу сделать так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Подскажите чайнику :)). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2012, 11:53:10 |
|
||
|
Есть аналог оператора with Делфи?
|
|||
|---|---|---|---|
|
#18+
pulpЕсть ли в java аналог оператора with Делфей, который позволяет сократить запись, например: Нет. Во-первых как-то не очень заметно что запись сократилась. Во-вторых это вроде для одного типа, а у вас ниже для разных типов. Duck Typing в Java нет. В-третих, если для разных типов\объектов одна и та же последовательность, то можно её вынести в отдельный метод. Или применить Visitor. pulpесть в EJB два класса, один с интерфейсом EJB1, второй без EJB2. [/quot] Летели два крокодила, один зеленый, второй на север. EJB2 интерфейс, или что? pulpУ класса EJB1 есть метод getEJB2, который возвращает ссылку на класс EJB2. Чтобы не делать инерфейс к классу EJB2 хочу сделать так: В чем проблема сделать интерфейс. Класс EJB2 или EJB или POJO? pulpИначе придётся делать интерфейс и писать так: EJB2Local ejb2Local; ejb2Local = EJB1.getEJB2; ejb2Local.method1; ejb2Local.method2; Т.е. у класса EJB2 нет методов, а если ему сделать интерфейс, то у него эти методы вдруг появятся? Local/Remote это вообще отдельная тема. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2012, 12:03:34 |
|
||
|
Есть аналог оператора with Делфи?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczНет. Во-первых как-то не очень заметно что запись сократилась. Во-вторых это вроде для одного типа, а у вас ниже для разных типов. Duck Typing в Java нет. В-третих, если для разных типов\объектов одна и та же последовательность, то можно её вынести в отдельный метод. Или применить Visitor. Тип один: object. BlazkowiczЛетели два крокодила, один зеленый, второй на север. EJB2 интерфейс, или что? Есть два класса EJB1 и EJB2. У EJB1 есть интерфейс EJB1Local, у EJB2 нет интерфейса. У класса EJB2 есть два метода (method1 и method2). Класс EJB1 имеет метод getEJB2, который возвращает ссылку на класс EJB2. Нужно в клиенте вызвать оба метода класса EJB2. При этом возможен такой вызов: EJB1.getEJB2.method1. BlazkowiczВ чем проблема сделать интерфейс. Класс EJB2 или EJB или POJO? Если можно не делать, зачем делать? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2012, 12:10:53 |
|
||
|
Есть аналог оператора with Делфи?
|
|||
|---|---|---|---|
|
#18+
pulpТип один: object. Тип переменной и тип экземпляра не одно и тоже. У типа object нет method1 и method2. Чтобы вызвать конкретный метод нужно знать конкретный тип. Ну или рефлексией. pulpЕсть два класса EJB1 и EJB2. У EJB1 есть интерфейс EJB1Local, у EJB2 нет интерфейса. У класса EJB2 есть два метода (method1 и method2). Класс EJB1 имеет метод getEJB2, который возвращает ссылку на класс EJB2. Нужно в клиенте вызвать оба метода класса EJB2. При этом возможен такой вызов: EJB1.getEJB2.method1. Код: java 1. 2. 3. 4. pulpЕсли можно не делать, зачем делать? :) Ну, используйте конкретный тип EJB2 вместо интерфейса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2012, 12:18:23 |
|
||
|
Есть аналог оператора with Делфи?
|
|||
|---|---|---|---|
|
#18+
pulp, У тебя и в дельфи работать не будет. Ты спутал сабж с полиморфизмом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2012, 14:10:00 |
|
||
|
Есть аналог оператора with Делфи?
|
|||
|---|---|---|---|
|
#18+
Я себе почему-то вбил в голову, что из клиента нельзя обратиться к классу EJB2 без реализации для него интерфейса. Оказывается можно! Конечно тогда буду делать: EJB1 e1 = getEJB1(); EJB2 e2 = e1.getEJB2(); e2.method1(); e2.method2(); Пример с крокодилами помог :)). Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2012, 17:59:51 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=258&tid=2130502]: |
0ms |
get settings: |
12ms |
get forum list: |
18ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
35ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
42ms |
get tp. blocked users: |
2ms |
| others: | 323ms |
| total: | 458ms |

| 0 / 0 |
