| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > По названию обьекта определить класс... |
| Автор: PashaOvechkin 11.9.2008, 12:35 | ||
| Пример класса виде ниже. Техт данного класса хранится в JТextArea. знаем название обьекта класса, например в данном классе ето -> myString . Существует ли либа которая помогла бы узнать инстанцией какого класса явяется етот обьект?? (в примере ето String) в идеале, имеем доступ ко всему проекту - но ето тогда будет о4ень сложно Но можно локализовать задачу, и действовать в пределах одного класса. Кто нить делал что то подобное? Спасибо!
Спасибо! |
| Автор: ivg 11.9.2008, 13:26 |
| Еще раз уточните, у вас есть код класса (в виде текста), который хранится в переменной типа String и вам нужно получить экземпляр этого класса (в виде объекта класса Class<?>) в рантайме. Я правильно понимаю? |
| Автор: PashaOvechkin 11.9.2008, 15:17 |
| Нет, нет... Добавлено через 9 минут и 15 секунд Есть код ява класа в виде стринга. В етом класе есть множество атрибутов и локальных переменных методов. Выбираем любой например атрибут класса, который является инстансом любого другово класса (или возможно етого же). Так вот задача как раз и состоит в том, что бы по названию инстанса класса определить его instanceof XXXXXX Надеюсь доступно обяснил... Ето нужно для autoComplete. Ведь в любой ИДЕ autoComplete работает именно так. |
| Автор: PashaOvechkin 11.9.2008, 15:33 |
| на выше приведённом примере ето : есть текст класса ArrayDemo в стринге. И нам нужно определить обьектом какого класса является myString. в етом примере всё просто. Но мы же знаем что ситуацию можно оочень сильно усложнить ... |
| Автор: BegemotX2 15.9.2008, 16:35 | ||
| если я правильно Вас понял, то вам необходимо синтаксически разобрать ваш код (построить по нему Syntax Tree). После этого проанализировать этот syntax tree, понять, где импорты, объявления класса, методов, полей итд. Проанализировать импорты, найти описание переменной myString, найти полученный тип в импортах и, далее - Class.forName ) Задача не из тех, что можно быстро решить. Я когда-то делал что-то подобное. В качестве основы использовал парсер от BeanShell, хотя есть более общая тулза, зовется JavaCC. Кстати, желаю удачи в определении типа выражения в конце строчки типа
|
| Автор: Maksym 15.9.2008, 16:51 |
| PashaOvechkin Чисто на уровне идеи... если я правильно понял пробему... А что нельзя десериализировать это строчное представление в класс типа Оbject, а уже после этого взять у него getClass()...? |