powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Generics, хочется странного....
12 сообщений из 12, страница 1 из 1
Generics, хочется странного....
    #34370124
Jartisan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет!

В понедельник хочется странного...

Код: plaintext
1.
2.
3.
4.
5.
6.
 public   class  CustomListProvider<T>  extends  ObjectListDataProvider{
     private  ArrayList<T> list =  new  ArrayList<T>();

     public  CustomListProvider() {
          list.add( new  <T>()); 
   }
}

т.е. создать объект вот такого заранее неизвестного типа Т - new <T>() - не канает
как это правильно написать и вообще возможно ли это?

Спасибо
...
Рейтинг: 0 / 0
Generics, хочется странного....
    #34370140
LINUXER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скобки <> - передача параметра
а объект - просто T
...
Рейтинг: 0 / 0
Generics, хочется странного....
    #34370145
Jartisan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
new T() - тоже не работает
...
Рейтинг: 0 / 0
Generics, хочется странного....
    #34370216
LINUXER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
точно
generics-tutorialSimilarly, attempting to create an array object whose element type is a type variable
causes a compile-time error:
<T> T[] makeArray(T t) { return new T[100]; // error
}
Since type variables don’t exist at run time, there is no way to determine what the
actual array type would be.
The way to work around these kinds of limitations is to use class literals as run time
type tokens, as described in section 8.
generics-tutorial
...
Рейтинг: 0 / 0
Generics, хочется странного....
    #34370338
expp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и`мхо боянъ
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
     public   class  CustomListProvider<T>  extends  ObjectListDataProvider{
     private  ArrayList<T> list =  new  ArrayList<T>();
     final   Class <T> runtimeClazz;
     public  CustomListProvider( Class <T> clazz) {
          runtimeClazz =   clazz;
          list.add(clazz.newInstance()); 
   }
}
...
Рейтинг: 0 / 0
Generics, хочется странного....
    #34370359
Jartisan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 expp
спасиб, в боянах я не спец
тока мне надо чтоб это безобразие происходило в конструкторе без параметров
...
Рейтинг: 0 / 0
Generics, хочется странного....
    #34370458
smbdy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
 public   class  CustomListProvider<T> {
     private  ArrayList<T> list =  new  ArrayList<T>();

     public  CustomListProvider()  throws  Exception{
         Class <T> runtimeClazz = ( Class <T>) ((ParameterizedType) getClass()
                                .getGenericSuperclass()).getActualTypeArguments()[ 0 ];  
        list.add(runtimeClazz.newInstance()); 
   }
}

так ?
...
Рейтинг: 0 / 0
Generics, хочется странного....
    #34370617
Jartisan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 smbdy

нет, к сожалению -
java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType
...
Рейтинг: 0 / 0
Generics, хочется странного....
    #34372211
Valery Shiskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы хотите создать обэект никому неизвестного типа и добавить его сразу в коллекцию. Максимально-доступное извращение - это:

public class CustomListProvider<T> extends ObjectListDataProvider{
private ArrayList<T> list = new ArrayList<T>();

public CustomListProvider() {
list.add((T)new Object());
}
}
...
Рейтинг: 0 / 0
Generics, хочется странного....
    #34372325
y3u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нафига тогда типизировать?
...
Рейтинг: 0 / 0
Generics, хочется странного....
    #34372394
Фотография andrushok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jartisannew T() - тоже не работает
Все согластно описанию Java 5 :)
А что, нельзя ли по простому -

Код: plaintext
1.
2.
3.
4.
5.
6.
 public   class  CustomListProvider<T  extends  BaseForT>  extends  ObjectListDataProvider{
 private  ArrayList<T> list =  new  ArrayList<BaseForT>();
 public  CustomListProvider( T o) {
          list.add( o);
}
}
...
Рейтинг: 0 / 0
Generics, хочется странного....
    #34372916
Jartisan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здрасьте!
Всем спасибо. Вобщем плюнул я на ето дело. Переделал все, так чтобы не возникало желание использовать это, как справедливо заметил Valery Shiskin, - "Максимально-доступное извращение".

andrushokА что, нельзя ли по простому
Канэчна можно Но мне был нужен конструктор без параметров.

Ещё раз спасибо откликнувшимся.

успехов.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Generics, хочется странного....
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]