![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
PashaOvechkin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 394 Регистрация: 1.4.2007 Где: Riga, Latvia Репутация: 2 Всего: 4 |
Пример класса виде ниже.
Техт данного класса хранится в JТextArea. знаем название обьекта класса, например в данном классе ето -> myString . Существует ли либа которая помогла бы узнать инстанцией какого класса явяется етот обьект?? (в примере ето String) в идеале, имеем доступ ко всему проекту - но ето тогда будет о4ень сложно Но можно локализовать задачу, и действовать в пределах одного класса. Кто нить делал что то подобное? Спасибо!
Спасибо! |
|||
|
||||
ivg |
|
|||
![]() Autonomous R&D ![]() ![]() Профиль Группа: Участник Сообщений: 686 Регистрация: 8.2.2006 Где: Екатеринбург Репутация: 33 Всего: 81 |
Еще раз уточните, у вас есть код класса (в виде текста), который хранится в переменной типа String и вам нужно получить экземпляр этого класса (в виде объекта класса Class<?>) в рантайме. Я правильно понимаю?
|
|||
|
||||
PashaOvechkin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 394 Регистрация: 1.4.2007 Где: Riga, Latvia Репутация: 2 Всего: 4 |
Нет, нет...
Добавлено через 9 минут и 15 секунд Есть код ява класа в виде стринга. В етом класе есть множество атрибутов и локальных переменных методов. Выбираем любой например атрибут класса, который является инстансом любого другово класса (или возможно етого же). Так вот задача как раз и состоит в том, что бы по названию инстанса класса определить его instanceof XXXXXX Надеюсь доступно обяснил... Ето нужно для autoComplete. Ведь в любой ИДЕ autoComplete работает именно так. Это сообщение отредактировал(а) PashaOvechkin - 11.9.2008, 15:18 |
|||
|
||||
PashaOvechkin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 394 Регистрация: 1.4.2007 Где: Riga, Latvia Репутация: 2 Всего: 4 |
на выше приведённом примере ето :
есть текст класса ArrayDemo в стринге. И нам нужно определить обьектом какого класса является myString. в етом примере всё просто. Но мы же знаем что ситуацию можно оочень сильно усложнить ... ![]() |
|||
|
||||
BegemotX2 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 13.11.2005 Репутация: 1 Всего: 1 |
если я правильно Вас понял, то вам необходимо синтаксически разобрать ваш код (построить по нему Syntax Tree).
После этого проанализировать этот syntax tree, понять, где импорты, объявления класса, методов, полей итд. Проанализировать импорты, найти описание переменной myString, найти полученный тип в импортах и, далее - Class.forName ) Задача не из тех, что можно быстро решить. Я когда-то делал что-то подобное. В качестве основы использовал парсер от BeanShell, хотя есть более общая тулза, зовется JavaCC. Кстати, желаю удачи в определении типа выражения в конце строчки типа
|
|||
|
||||
Maksym |
|
|||
![]() . ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 19.8.2005 Где: Odessa, Black Sea Репутация: 14 Всего: 62 |
PashaOvechkin
Чисто на уровне идеи... если я правильно понял пробему... А что нельзя десериализировать это строчное представление в класс типа Оbject, а уже после этого взять у него getClass()...? |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |