|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.08.2011, 22:27 | #1 |
Новичок
Джуниор
Регистрация: 07.08.2011
Сообщений: 2
|
инициализация generic type
Здравствуйте.
Уже несколько дней не могу решить проблему инициализации generic'а при создании экземпляра класса. Код:
if (genericType instanceof ParameterizedType) соответственно persistentClass у меня null и невозможно создать экземпляр V в рантайме. Сразу оговорюсь, что я не java программист. Очень нужно быстро въехать в проект и кое-что дописать. Заранее благодарность за дельные советы. Последний раз редактировалось alexinspir; 08.08.2011 в 04:32. |
08.08.2011, 05:37 | #2 |
Новичок
Джуниор
Регистрация: 26.08.2008
Сообщений: 1,010
|
За более чем два года работы с Java я впервые встречаюсь с подобным использованием дженериков.
На сколько мне известно дженерики ведут себя как дженерики только на этапе компиляции (по причине совместимости со старыми версиями). В вашем случае наиболее оптимальным решением будет передавать объект класса V (SomeClass.class) в конструктор. Однако, замечу что рефлексия является крайне медленным механизмом(например, вызов метода через рефлексию происходит в среднем в 10 раз медленнее прямого вызова). Обратите особое внимание на первую ссылку. http://en.wikipedia.org/wiki/Generic...a#Type_erasure http://habrahabr.ru/blogs/java/66593/
ромик0: Cколько получают здешние модераторы?
pu4koff: У модераторов сдельная оплата труда. Выдал предупреждение - плюс к премии. Выдал бан - лучший модератор месяца со всеми вытекающими. Последний раз редактировалось alexinspir; 08.08.2011 в 07:46. Причина: Добавлены ссылки |
08.08.2011, 12:11 | #3 |
Новичок
Джуниор
Регистрация: 07.08.2011
Сообщений: 2
|
в принципе, где это возможно я и передаю объект в конструктор.
По сути, у меня следующая проблема: Есть проект на Spring MVC. Нужно добавить форму добавления транспорта. Вот код в контроллере Код:
У тебя есть опыт разработки, может сталкивался с такой ситуацией? Последний раз редактировалось alexinspir; 09.08.2011 в 09:41. |
09.08.2011, 10:07 | #4 |
Новичок
Джуниор
Регистрация: 26.08.2008
Сообщений: 1,010
|
Код который вы дали не коррктен с точки зрения синтаксиса(синтаксис параметра). возможно вы имели ввиду следующий код:
Код:
вижу несколько возможных вариантов: 1.если доступно место инициализации объекта vehicleForm, то там же и инициализовать необходимое свойство класса(может потребоваться необходимость дописать методы в VehicleForm для этого). 2.если есть возможность редактировать тело метода addVehicle, то можно прямо в нем создать экземпляр класса Truck, так как нам известен класс, и инициализовать нужную переменную в vehicleForm. Я немного знаком со Spring Core IoC, и как я понял, если метод addVehicle вызывается изнутри фреймворка, типы входящих в него переменных не параметризированы. Т.е. как мне кажется в данном случае код будет компилироваться, но в рантайме должен выбрасывать ошибки. К сожалению, у меня недостаточно квалификации чтобы вам полноценно помочь.
ромик0: Cколько получают здешние модераторы?
pu4koff: У модераторов сдельная оплата труда. Выдал предупреждение - плюс к премии. Выдал бан - лучший модератор месяца со всеми вытекающими. Последний раз редактировалось alexinspir; 09.08.2011 в 10:14. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Could not convert variant of type (Olestr) into type (Double) | java_91 | Общие вопросы Delphi | 1 | 18.02.2011 18:46 |
The type name 'GreenShalControl' does not exist in the type | Beton_net | WPF, UWP, WinRT, XAML | 0 | 15.02.2011 11:24 |
Could not convert variant of type (UnicodeString) into type (Double) | postaveche | БД в Delphi | 11 | 13.12.2010 16:41 |