Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> По названию обьекта определить класс... етого же обьекта 
:(
    Опции темы
PashaOvechkin
Дата 11.9.2008, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 394
Регистрация: 1.4.2007
Где: Riga, Latvia

Репутация: 2
Всего: 4



Пример класса виде ниже.
Техт данного класса хранится в JТextArea.

знаем название обьекта класса, например в данном классе ето -> myString .

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

(в примере ето String)

в идеале, имеем доступ ко всему проекту - но ето тогда будет о4ень сложно

Но можно локализовать задачу, и действовать в пределах одного класса.
Кто нить делал что то подобное?

Спасибо!

Код


public class ArrayDemo {

    private String myString = "";
    public static void main(String[] args) {
    int[] anArray;            // DECLARE an array of integers

    anArray = new int[10];    // CREATE an array of integers

    // assign a value to each array element 
    for (int i = 0; i < anArray.length; i++) {
        anArray[i] = i;
        }

    // print a value from each array element
    for (int i = 0; i < anArray.length; i++) {
        System.out.print(anArray[i] + " ");
    }

        myString  = myString.trim();


    System.out.println();
    }
}





Спасибо!
PM MAIL Skype   Вверх
ivg
Дата 11.9.2008, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Autonomous R&D
**


Профиль
Группа: Участник
Сообщений: 686
Регистрация: 8.2.2006
Где: Екатеринбург

Репутация: 33
Всего: 81



Еще раз уточните, у вас есть код класса (в виде текста), который хранится в переменной типа String и вам нужно получить экземпляр этого класса (в виде объекта класса Class<?>) в рантайме. Я правильно понимаю?
PM MAIL   Вверх
PashaOvechkin
Дата 11.9.2008, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 394
Регистрация: 1.4.2007
Где: Riga, Latvia

Репутация: 2
Всего: 4



Нет, нет...

Добавлено через 9 минут и 15 секунд
Есть код ява класа в виде стринга. В етом класе есть множество атрибутов и локальных переменных методов.
Выбираем любой например атрибут класса, который является инстансом любого другово класса (или возможно етого же).

Так вот задача как раз и состоит в том, что бы по названию инстанса класса определить его instanceof XXXXXX

Надеюсь доступно обяснил... Ето нужно для autoComplete.

Ведь в любой ИДЕ autoComplete работает именно так.

Это сообщение отредактировал(а) PashaOvechkin - 11.9.2008, 15:18
PM MAIL Skype   Вверх
PashaOvechkin
Дата 11.9.2008, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 394
Регистрация: 1.4.2007
Где: Riga, Latvia

Репутация: 2
Всего: 4



на выше приведённом примере ето : 

есть текст класса ArrayDemo в стринге. И нам нужно определить обьектом какого класса является myString.
в етом примере всё просто. Но мы же знаем что ситуацию можно оочень сильно усложнить ... smile
PM MAIL Skype   Вверх
BegemotX2
Дата 15.9.2008, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 13.11.2005

Репутация: 1
Всего: 1



если я правильно Вас понял, то вам необходимо синтаксически разобрать ваш код (построить по нему Syntax Tree).
После этого проанализировать этот syntax tree, понять, где импорты, объявления класса, методов, полей итд. 

Проанализировать импорты, найти описание переменной myString, найти полученный тип в импортах и, далее -  Class.forName )

Задача не из тех, что можно быстро решить. Я когда-то делал что-то подобное. В качестве основы использовал парсер от BeanShell, хотя есть более общая тулза, зовется JavaCC.

Кстати, желаю удачи в определении типа выражения в конце строчки типа
Код

  ((Byte)myString.getBytes()[0]).getClass().toString()

PM MAIL   Вверх
Maksym
Дата 15.9.2008, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

Репутация: 14
Всего: 62



PashaOvechkin
Чисто на уровне идеи... если я правильно понял пробему... А что нельзя десериализировать это строчное представление в класс типа Оbject, а уже после этого взять у него getClass()...?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0851 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.