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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> куда записать переменные с типами? в какую структуру данных? 
V
    Опции темы
ElKa
Дата 17.7.2008, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



нужно все переменные из кода вместе с типами куда-нибудь записать.. т. е. пары должны записываться 
что лучше для этого подходит? 
PM   Вверх
Dims
Дата 17.7.2008, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

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



Любая Collection, например, Vector. Они туда лягут в виде Object. Имея переменную типа Object, её точный тип всегда можно определить при помощи getClass()
PM MAIL   Вверх
Samotnik
Дата 17.7.2008, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

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



Цитата(Dims @  17.7.2008,  18:59 Найти цитируемый пост)
Они туда лягут в виде Object.

ну не обязательно, можно привести к своему типу
Код

Vector<Integer> objects = new Vector<Integer>();



PM MAIL   Вверх
garbuz
Дата 17.7.2008, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(ElKa @  17.7.2008,  16:52 Найти цитируемый пост)
нужно все переменные из кода вместе с типами куда-нибудь записать.. т. е. пары должны записываться 
что лучше для этого подходит?  

Может лучше HashMap. Как раз подходит для хранения данных в паре ключ <=> значение. Если не ощибаюсь и ключ и значение типа Object. Из ключа получаете тип объекта с пом getClass(), а потом приводите значение к полученному типу.

PM MAIL   Вверх
Dims
Дата 18.7.2008, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

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



Цитата(Samotnik @  17.7.2008,  20:36 Найти цитируемый пост)
ну не обязательно, можно привести к своему типу

Вроде бы параметры generics-ов всё равно в виде обджектов во время исполнения реализуются?
PM MAIL   Вверх
Samotnik
Дата 18.7.2008, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

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



Dims, вот попробуй в
Код

ArrayList<Integer> al = new ArrayList<Integer>();

положить
Код

al.add("hello");

PM MAIL   Вверх
Dims
Дата 18.7.2008, 23:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

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



Цитата(Samotnik @  18.7.2008,  17:26 Найти цитируемый пост)
Dims, вот попробуй в

Ну, дык, копиллятор не даст. Но это не значит, что во время исполнения Vector<Integer> отличается от Vector<String>.

Встречный пример:

Код

public class Business implements Affair<Integer>, Affair<String> {
    public void doSomething(Integer i) {
    }
    
    public void doSomething(String s) {
    }

}

interface Affair<T> {
    public void doSomething(T t);
}


Низзя! 

"Business.java": Affair cannot be inherited with different arguments: <java.lang.Integer> and <java.lang.String> at line 15, column 1




PM MAIL   Вверх
ElKa
Дата 19.7.2008, 03:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



создаю HashMap.. пробую добавить данные.. получаю ошибку syntax error on tokens

что неправильно? 

Код

HashMap<String,String> constants = new HashMap<String,String>();
    
    constants.put("\\main","main");


компилирую в Eclipse.. может в нем проблема? 

Это сообщение отредактировал(а) ElKa - 19.7.2008, 10:19
PM   Вверх
garbuz
Дата 19.7.2008, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Все прекрасно компилится под IDEA, значит косяки в Вашем Eclipse smile
Код

public class Main {
    public static void main(String[] args) {
        HashMap<String, String> constants = new HashMap<String, String>();
        constants.put("\\main", "main");
        Object o = constants.get("\\main");
        System.out.println(o.toString());
    }
}


ElKa, задача, описанная в первом посте, немного отличается от этой. Вам же вроде как и типы хранить надо было? smile
PM MAIL   Вверх
garbuz
Дата 19.7.2008, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Может что-нить типа такого? smile
Код

public class Main {
    public static void main(String[] args) {
        HashMap constants = new HashMap();
        String str = new String("Hello");
        Integer i = 10;
        ArrayList list = new ArrayList();
        constants.put(str.getClass(), str);
        constants.put(i.getClass(), i);
        constants.put(list.getClass(), list);

       Iterator iterator = constants.entrySet().iterator();
        while (iterator.hasNext()){
            Map.Entry entry = (Map.Entry) iterator.next();
            Object key = entry.getKey();
            Object value = entry.getValue();
            System.out.println(key.getClass().toString());
            System.out.println(value.toString());
        }

    }
}


Не компилил.
PM MAIL   Вверх
ElKa
Дата 19.7.2008, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



garbuz

а мне и с типами надо будет сохранять, и со стрингами 

я использую JavaCC, поэтому мне только Eclipse подходит
что же мне делать?  smile 
PM   Вверх
Samotnik
Дата 19.7.2008, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

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



ElKa,  я не понимаю в чем проблема  smile 
Что нужно ?
можно формулировку задачи конкретнее ? 


PM MAIL   Вверх
ElKa
Дата 19.7.2008, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Samotnik

 smile постараюсь:

мне надо запоминать пары.. переменная - значение.. слово входящего кода - его перевод /в стрингах/ и т.д.
я пытаюсь занести их в HashMap, но Eclipse выдает ошибку
он не воспринимает команду put

как мне решить эту проблему?
или в Eclipse
или заменить HashMap чем-то другим


PM   Вверх
Samotnik
Дата 19.7.2008, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

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



ElKa,  загляни в раздел  Java IDE  and  Tools 
в твоем примере походу метода  main небыло, потому и не работало  smile 
PM MAIL   Вверх
ElKa
Дата 19.7.2008, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Samotnik

да.. с мэйном ошибок нет..
только у меня мэйн еще и в другом классе.. это ничего? 
может как-то по-другому можно проблему решить?  smile

Добавлено через 14 минут и 54 секунды
Samotnik

а если я все в конструктор занесу и мэйн уберу? это не будет ошибкой? 

Код

import java.util.HashMap;

public class Constants {
    HashMap<String,String> constants = new HashMap<String,String>();
    public Constants(){
        
        constants.put("\\main","main");
        constants.put("\\Skip","SKIP");
// и т.д.
    }

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

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

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


 




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


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

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