Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Generics, хочется странного.... / 12 сообщений из 12, страница 1 из 1
05.03.2007, 06:24:59
    #34370124
Jartisan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Generics, хочется странного....
Привет!

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

Код: 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
05.03.2007, 06:48:00
    #34370140
LINUXER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Generics, хочется странного....
скобки <> - передача параметра
а объект - просто T
...
Рейтинг: 0 / 0
05.03.2007, 06:51:26
    #34370145
Jartisan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Generics, хочется странного....
new T() - тоже не работает
...
Рейтинг: 0 / 0
05.03.2007, 08:18:41
    #34370216
LINUXER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Generics, хочется странного....
точно
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
05.03.2007, 09:29:57
    #34370338
expp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Generics, хочется странного....
и`мхо боянъ
Код: 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
05.03.2007, 09:37:08
    #34370359
Jartisan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Generics, хочется странного....
2 expp
спасиб, в боянах я не спец
тока мне надо чтоб это безобразие происходило в конструкторе без параметров
...
Рейтинг: 0 / 0
05.03.2007, 10:13:11
    #34370458
smbdy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Generics, хочется странного....
Код: 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
05.03.2007, 11:02:20
    #34370617
Jartisan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Generics, хочется странного....
2 smbdy

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

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

public CustomListProvider() {
list.add((T)new Object());
}
}
...
Рейтинг: 0 / 0
05.03.2007, 18:25:05
    #34372325
y3u
y3u
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Generics, хочется странного....
нафига тогда типизировать?
...
Рейтинг: 0 / 0
05.03.2007, 18:45:59
    #34372394
andrushok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Generics, хочется странного....
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
06.03.2007, 06:14:12
    #34372916
Jartisan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Generics, хочется странного....
Здрасьте!
Всем спасибо. Вобщем плюнул я на ето дело. Переделал все, так чтобы не возникало желание использовать это, как справедливо заметил Valery Shiskin, - "Максимально-доступное извращение".

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

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

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


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