|
|
|
Можно ли в java загрузить функционал класса из файла.
|
|||
|---|---|---|---|
|
#18+
А можно еще сделать так. interface InterfaceA { [// some methods] } interface InterfaceB [extends A] { void print(); } А в коде: if(x instabceof InterfaceB ) { ((InterfaceB)x).print(); } Все дело в том, что за гибкость рефлекшна приходится платить производительностью, поэтому не рекомендуется использовать его где попало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2007, 22:48:48 |
|
||
|
Можно ли в java загрузить функционал класса из файла.
|
|||
|---|---|---|---|
|
#18+
SarinJython Уё! Сан решили включить в SDK то, что уже фиг знает сколько лет написано? Типичная политика софтверного гиганта ИМХО. По сабжу JScript работает! Только что попробовал на JDK 1.6.0. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. Хех... А кто-то в форуме бил себя в грудь и говорил дескать Java!=JScript. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2007, 22:56:19 |
|
||
|
Можно ли в java загрузить функционал класса из файла.
|
|||
|---|---|---|---|
|
#18+
mayton Хех... А кто-то в форуме бил себя в грудь и говорил дескать Java!=JScript. Смотря что рассматривать под Java. Если как язык - так ничто в вашем посте не говорит об обратном ( Java != JScript). А то следуя вашей логике Java == Python, Java == Ruby, Java == Haskell... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2007, 11:22:52 |
|
||
|
Можно ли в java загрузить функционал класса из файла.
|
|||
|---|---|---|---|
|
#18+
LeonidvЕсли как язык - так ничто в вашем посте не говорит об обратном ( Java != JScript). Верно. Просто я хотел акцентировать внимание на том, что популярный слоган приобретает несколько иной смысл. Да Java!=JScript. Но может-ли Java являтся чем-то другим по отношению к JScript? Впрочем это оффтоп. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2007, 11:35:51 |
|
||
|
Можно ли в java загрузить функционал класса из файла.
|
|||
|---|---|---|---|
|
#18+
K1RUHAА можно еще сделать так. interface InterfaceA { [// some methods] } interface InterfaceB [extends A] { void print(); } А в коде: if(x instabceof InterfaceB ) { ((InterfaceB)x).print(); } Все дело в том, что за гибкость рефлекшна приходится платить производительностью, поэтому не рекомендуется использовать его где попало. Гм, а динамическое преобразование типа в Java катит? Если да, то должен работать такой вот код: I=x.GetInterface(); //возращается интерфейс типа x if(x instabceof I ) { ((I)x).print(); } или так (через преобразование типа): I=x.GetType(); //возращается тип объекта x if(x instabceof I ) { ((I)x).print(); } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2007, 18:31:53 |
|
||
|
Можно ли в java загрузить функционал класса из файла.
|
|||
|---|---|---|---|
|
#18+
Для того, чтобы знать, какие методы интерфейса можно вызывать, надо чтобы интерфейс был известен на момент компиляции. Так что в Вашем случае - или получать ссылки на интерфейс не надо (т.к. толку от этого никакого), или можно проверять классы на имплементацию ими интерфейсов и приводить их к неким интерфейсам... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2007, 18:53:47 |
|
||
|
Можно ли в java загрузить функционал класса из файла.
|
|||
|---|---|---|---|
|
#18+
ЗашедшийДля того, чтобы знать, какие методы интерфейса можно вызывать, надо чтобы интерфейс был известен на момент компиляции. Так что в Вашем случае - или получать ссылки на интерфейс не надо (т.к. толку от этого никакого), или можно проверять классы на имплементацию ими интерфейсов и приводить их к неким интерфейсам... Допустим я в базовом классе сделаю метод, который возвращает тип класса - GetType, а во всех наследниках его переопределять. Смогу ли я, как спрашивал выше, динамически привести ссылку к нужному типу, хранящемуся в переменной (т.е. преобразовать не к константному типу, а к типу из переменной)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2007, 19:04:08 |
|
||
|
Можно ли в java загрузить функционал класса из файла.
|
|||
|---|---|---|---|
|
#18+
Fixin K1RUHAА можно еще сделать так. interface InterfaceA { [// some methods] } interface InterfaceB [extends A] { void print(); } А в коде: if(x instabceof InterfaceB ) { ((InterfaceB)x).print(); } Все дело в том, что за гибкость рефлекшна приходится платить производительностью, поэтому не рекомендуется использовать его где попало. Гм, а динамическое преобразование типа в Java катит? Если да, то должен работать такой вот код: I=x.GetInterface(); //возращается интерфейс типа x if(x instabceof I ) { ((I)x).print(); } или так (через преобразование типа): I=x.GetType(); //возращается тип объекта x if(x instabceof I ) { ((I)x).print(); } Не надо использовать объектно-ориентированный язык, как скриптовый! Если посмотреть в сторону паттернов ООД, то можно найти паттерн Command. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2007, 19:25:02 |
|
||
|
Можно ли в java загрузить функционал класса из файла.
|
|||
|---|---|---|---|
|
#18+
K1RUHA Fixin K1RUHAА можно еще сделать так. interface InterfaceA { [// some methods] } interface InterfaceB [extends A] { void print(); } А в коде: if(x instabceof InterfaceB ) { ((InterfaceB)x).print(); } Все дело в том, что за гибкость рефлекшна приходится платить производительностью, поэтому не рекомендуется использовать его где попало. Гм, а динамическое преобразование типа в Java катит? Если да, то должен работать такой вот код: I=x.GetInterface(); //возращается интерфейс типа x if(x instabceof I ) { ((I)x).print(); } или так (через преобразование типа): I=x.GetType(); //возращается тип объекта x if(x instabceof I ) { ((I)x).print(); } Не надо использовать объектно-ориентированный язык, как скриптовый! Если посмотреть в сторону паттернов ООД, то можно найти паттерн Command. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ага: void execute(name) { if name="print" then print(); elseif name="run" then run() ... } ага, только зачем писать интерпретатор, если джава МОЖЕТ вызвать нужный метод (сама интерпретатор) и еще придется беспокоиться о параметрах, ведь у методов могут быть ПАРАМЕТРЫ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2007, 19:42:35 |
|
||
|
Можно ли в java загрузить функционал класса из файла.
|
|||
|---|---|---|---|
|
#18+
Fixinага, только зачем писать интерпретатор, если джава МОЖЕТ вызвать нужный метод (сама интерпретатор) и еще придется беспокоиться о параметрах, ведь у методов могут быть ПАРАМЕТРЫ Видите ли, Java - не интерпретатор в том виде, в котором Вы это воспринимаете. То есть у нее нет никаких исходных кодов, у нее есть скомпилированный код. Только скомпилирован он не для "железа", а для виртуальной машины. Если взять процессор, работающий как вирт.машина (т.н. Java-процессор) - то ровно тот же самый код замечательно будет исполняться на нем без всяких дополнительных заморочек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2007, 19:57:25 |
|
||
|
Можно ли в java загрузить функционал класса из файла.
|
|||
|---|---|---|---|
|
#18+
Зашедший Fixinага, только зачем писать интерпретатор, если джава МОЖЕТ вызвать нужный метод (сама интерпретатор) и еще придется беспокоиться о параметрах, ведь у методов могут быть ПАРАМЕТРЫ Видите ли, Java - не интерпретатор в том виде, в котором Вы это воспринимаете. То есть у нее нет никаких исходных кодов, у нее есть скомпилированный код. Только скомпилирован он не для "железа", а для виртуальной машины. Если взять процессор, работающий как вирт.машина (т.н. Java-процессор) - то ровно тот же самый код замечательно будет исполняться на нем без всяких дополнительных заморочек. Вы хотите сказать, что виртуальная машина не знает, есть ли у объекта X метод print? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2007, 20:04:31 |
|
||
|
Можно ли в java загрузить функционал класса из файла.
|
|||
|---|---|---|---|
|
#18+
Знает, и для того чтобы вызвать этот метод можно использовать reflection, как и описали выше. Вопрос в другом, возможно вам вообще не нужен в описываемой ситуации reflection и можно обойтись стандартными приемами ООП. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2007, 20:18:30 |
|
||
|
Можно ли в java загрузить функционал класса из файла.
|
|||
|---|---|---|---|
|
#18+
max_from_sumyЗнает, и для того чтобы вызвать этот метод можно использовать reflection, как и описали выше. Вопрос в другом, возможно вам вообще не нужен в описываемой ситуации reflection и можно обойтись стандартными приемами ООП. Вот и я прошу отбросить понты и предлагаю вариант - динамическое преобразование к динамическому типу. Такое прокатит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2007, 20:27:30 |
|
||
|
Можно ли в java загрузить функционал класса из файла.
|
|||
|---|---|---|---|
|
#18+
Fixin max_from_sumyЗнает, и для того чтобы вызвать этот метод можно использовать reflection, как и описали выше. Вопрос в другом, возможно вам вообще не нужен в описываемой ситуации reflection и можно обойтись стандартными приемами ООП. Вот и я прошу отбросить понты и предлагаю вариант - динамическое преобразование к динамическому типу. Такое прокатит? Зашедший 2 раза повторял, что не прокатит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2007, 20:30:06 |
|
||
|
Можно ли в java загрузить функционал класса из файла.
|
|||
|---|---|---|---|
|
#18+
FixinВот и я прошу отбросить понты и предлагаю вариант - динамическое преобразование к динамическому типу. Такое прокатит? - Вам уже описали все возможные и разумные варианты: Reflection, интерфейсы, интерфейсы+Reflection - Вы хотите взять форум измором? Java язык жестко типизированый и о каких "динамических типах" Вы говорите не понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2007, 21:15:35 |
|
||
|
Можно ли в java загрузить функционал класса из файла.
|
|||
|---|---|---|---|
|
#18+
Fixin. Приведите пожалуйста пример применения вашей системы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2007, 23:52:47 |
|
||
|
Можно ли в java загрузить функционал класса из файла.
|
|||
|---|---|---|---|
|
#18+
Kachalov FixinВот и я прошу отбросить понты и предлагаю вариант - динамическое преобразование к динамическому типу. Такое прокатит? - Вам уже описали все возможные и разумные варианты: Reflection, интерфейсы, интерфейсы+Reflection - Вы хотите взять форум измором? Java язык жестко типизированый и о каких "динамических типах" Вы говорите не понятно. Товарищ качалов. я хочу понять: 1. возможно ли хранить информацию о типе в переменной. 2. Можно ли привести один тип к другому, если другой тип задается не в коде программы, а хранится в переменной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2007, 18:47:25 |
|
||
|
Можно ли в java загрузить функционал класса из файла.
|
|||
|---|---|---|---|
|
#18+
Fixin Kachalov FixinВот и я прошу отбросить понты и предлагаю вариант - динамическое преобразование к динамическому типу. Такое прокатит? - Вам уже описали все возможные и разумные варианты: Reflection, интерфейсы, интерфейсы+Reflection - Вы хотите взять форум измором? Java язык жестко типизированый и о каких "динамических типах" Вы говорите не понятно. Товарищ качалов. я хочу понять: 1. возможно ли хранить информацию о типе в переменной. 2. Можно ли привести один тип к другому, если другой тип задается не в коде программы, а хранится в переменной. 1. Да - cм. Class 2. Нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2007, 19:01:45 |
|
||
|
Можно ли в java загрузить функционал класса из файла.
|
|||
|---|---|---|---|
|
#18+
Fixin Kachalov FixinВот и я прошу отбросить понты и предлагаю вариант - динамическое преобразование к динамическому типу. Такое прокатит? - Вам уже описали все возможные и разумные варианты: Reflection, интерфейсы, интерфейсы+Reflection - Вы хотите взять форум измором? Java язык жестко типизированый и о каких "динамических типах" Вы говорите не понятно. Товарищ качалов. я хочу понять: 1. возможно ли хранить информацию о типе в переменной. 2. Можно ли привести один тип к другому, если другой тип задается не в коде программы, а хранится в переменной. 1. Возможно или нет - не знаю, но она там хранится самой Java - и сделать с етим ничего нельзя. Никаких лишних телодвижений для етого делать не надо, токо дерайв от Object. 2. До лампочки где он хранится или описывается. Если класс дерайвед от другого, то он приведется, или приведется к интерфейсу который класс имплементировал. К способу хранения - "динамически" или нет ето отношения не имеет. В рантайм вывалится еррор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2007, 23:32:19 |
|
||
|
Можно ли в java загрузить функционал класса из файла.
|
|||
|---|---|---|---|
|
#18+
mayton SarinJython Уё! Сан решили включить в SDK то, что уже фиг знает сколько лет написано? Типичная политика софтверного гиганта ИМХО. По сабжу JScript работает! Только что попробовал на JDK 1.6.0. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. Хех... А кто-то в форуме бил себя в грудь и говорил дескать Java!=JScript. Более того возможно импортировать классы Java в js Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2007, 09:12:06 |
|
||
|
Можно ли в java загрузить функционал класса из файла.
|
|||
|---|---|---|---|
|
#18+
Fixin Товарищ качалов. я хочу понять: 1. возможно ли хранить информацию о типе в переменной. 2. Можно ли привести один тип к другому, если другой тип задается не в коде программы, а хранится в переменной. "Товарищ" Fixin. Отвечаю по пунктам: 1. Да, можно, в переменной типа java.lang.Class [иными словами: Reflection API ] 2. Да, можно, если приводимый объект принадлежит к типу который является наследником от того типа к которому производится приведение (как уже отметил выше A. Fig Lee любой объект можно привести к типу java.lang.Object) [иными словами: наследование, интерфейсы ] - мне кажется Вы явно не хотите слышать ответы на свои вопросы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2007, 12:57:50 |
|
||
|
Можно ли в java загрузить функционал класса из файла.
|
|||
|---|---|---|---|
|
#18+
Kachalov Fixin Товарищ качалов. я хочу понять: 1. возможно ли хранить информацию о типе в переменной. 2. Можно ли привести один тип к другому, если другой тип задается не в коде программы, а хранится в переменной. "Товарищ" Fixin. Отвечаю по пунктам: 1. Да, можно, в переменной типа java.lang.Class [иными словами: Reflection API ] 2. Да, можно, если приводимый объект принадлежит к типу который является наследником от того типа к которому производится приведение (как уже отметил выше A. Fig Lee любой объект можно привести к типу java.lang.Object) [иными словами: наследование, интерфейсы ] - мне кажется Вы явно не хотите слышать ответы на свои вопросы. По пункту 2 - нельзя. В том смысле, в котором Fixin спрашивает. Если на момент компиляции тип неизвестен, то привести к нему использованием () нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2007, 13:05:49 |
|
||
|
Можно ли в java загрузить функционал класса из файла.
|
|||
|---|---|---|---|
|
#18+
Поясню: есть некий класс Код: plaintext 1. 2. 3. Он хочет, чтобы в программе (которая не имеет в момент компиляции никаких данных об этом классе) можно было написать: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2007, 13:09:40 |
|
||
|
Можно ли в java загрузить функционал класса из файла.
|
|||
|---|---|---|---|
|
#18+
ЗашедшийПоясню: есть некий класс Код: plaintext 1. 2. 3. Он хочет, чтобы в программе (которая не имеет в момент компиляции никаких данных об этом классе) можно было написать: Код: plaintext 1. 2. - чего хочет Fixin он, по моему, сам не знает :) Главное что он не хочет учиться. Приведеную Вами конструкцию он вполне мог реализовать через Reflection: Код: plaintext 1. 2. 3. 4. 5. 6. 7. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2007, 14:26:19 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=34388384&tid=2146315]: |
0ms |
get settings: |
12ms |
get forum list: |
17ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
47ms |
get topic data: |
15ms |
get forum data: |
4ms |
get page messages: |
96ms |
get tp. blocked users: |
3ms |
| others: | 290ms |
| total: | 496ms |

| 0 / 0 |
