![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Real McCoy |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 28.6.2007 Репутация: нет Всего: 2 |
Научите хорошему, плз
Материалы, которые есть здесь, читал, потому и занялся чисткой кода, но в одном конкретном случае застрял. У меня есть таблица с кастомной моделью. В строке таблицы данные разнородные, поэтому представляю их тип как Object. Строки таблицы хранятся в векторе - члене класса модели:
При компиляции с ключом -Xlint:unchecked получаю предупреждение: [unchecked] unchecked call to setElementAt(E,int) as a member of the raw type java.util.Vector При этом в NetBeans выделяются скобки с аргументами у setElementAt(). Пытался получить вектор строки таблицы как
Тогда получаю предупреждение: [unchecked] unchecked conversion и выделяются скобки у elementAt(). ПОнимаю, что что-то недопонимаю, подскажите, плз, что именно и как правильно? Спасибо! |
||||
|
|||||
| Tony |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1159 Регистрация: 3.3.2006 Где: Riga Репутация: нет Всего: 12 |
Добавь @SuppressWarnings("unchecked");
|
|||
|
||||
| Real McCoy |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 28.6.2007 Репутация: нет Всего: 2 |
Tony,
Я их не suppress хотел, а разобраться, что к чему и почему |
|||
|
||||
| Tony |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1159 Регистрация: 3.3.2006 Где: Riga Репутация: нет Всего: 12 |
Коллекции должныбыть с генериками.
|
|||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 8 Всего: 72 |
Между > > оставляй пробел |
|||
|
||||
| w1nd |
|
|||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 20 Всего: 54 |
Зачем? Это сообщение отредактировал(а) w1nd - 29.7.2007, 00:15 -------------------- ![]() ![]() |
|||
|
||||
| nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 16 Всего: 31 |
Видимо, тайные знания массонов.
Из последней строки (сообщение) видно, что компилятор хочет пихать некий Е, который соответтсвует параметризующему вектор типу. Ты же пихаешь туда что? Правильно, голый вектор (без параметризации). Ну и объявление самого вектора строк, как тебе подсказали, тоже должно быть нормально параметризованным (если одна строка - это вектор объектов, то так и параметризуй). А то у тебя получается странная картина - параметризация только наполовину. -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
| Real McCoy |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 28.6.2007 Репутация: нет Всего: 2 |
nornad, погодите, я ж написал, что когда делаю так:
т.е. параметризую получаемый вектор строки таблицы, а потом пытаюсь запихнуть в него value типа Object (вроде бы правильно, да?), тогда компилятор выдаёт предупреждение [unchecked] unchecked conversion и выделяются скобки с параметром у вызова dataVector.elementAt(rowIndex); Но ведь dataVector у меня параметризован, и я хочу получить у него содержимое такого типа, каким он параметризован, т.е. Vector. Это предупреждение меня и смущает. |
|||
|
||||
| nornad |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 16 Всего: 31 |
Ты уверен, что компилятор ругается на строку установки значения в rowVector, а не на конвертацию неизвестного вектора в вектор объектов? Тебе говорят про то, что по уму надо вместо сделать Добавлено через 1 минуту и 23 секунды Через ж... он у тебя параметризован. Добавлено через 2 минуты и 35 секунд Ну и напоследок.
Vector.class != Vector<Object>.class -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
||||
|
|||||
| Real McCoy |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 28.6.2007 Репутация: нет Всего: 2 |
nornad, спасибо большое! Я так попробовал сначала ещё, но выскочили ещё более запутавшие меня предупреждения в других местах, а т.к. всё началось именно с этого, хотел разобраться сначала с этим. Теперь с Вашей помощью разобрался и поправил всё как надо. Заодно разобрался с generic'ами и параметризацией Ещё раз спасибо! |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
На самом деле Vector.class == Vector<Object>.class -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 16 Всего: 31 |
Спорить не буду. Если честно - не проверял. Главное - по смыслу различаются. -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
| w1nd |
|
|||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 20 Всего: 54 |
Компилятор этого мнения не разделяет. Для него Vector.class == Vector<?>.class Тот факт, что "?" без уточняющих шаблонов и есть Object, по-любому, не всегда до него доходит -------------------- ![]() ![]() |
|||
|
||||
| Real McCoy |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 28.6.2007 Репутация: нет Всего: 2 |
||||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Попробуйте
Я говорил, о том, что в рантайме генериков нет. Будут разные типы, но класс будет один и тот же. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |