Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Определение новых типов / 18 сообщений из 18, страница 1 из 1
28.08.2012, 17:24:01
    #37934095
ErikI
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение новых типов
Добрый день.

Хочу узнать можно ли в java определять свои типы, вроде этого:
Код: java
1.
TListTable = ArrayList<HashMap<Integer, TFields>>;
...
Рейтинг: 0 / 0
28.08.2012, 17:30:07
    #37934109
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение новых типов
Код: java
1.
2.
class TListTable extends ArrayList<HashMap<Integer, TFields>>{
}
...
Рейтинг: 0 / 0
28.08.2012, 17:59:07
    #37934180
javapecker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение новых типов
ErikI,
ErikITListTable
Делфи?
...
Рейтинг: 0 / 0
28.08.2012, 18:18:37
    #37934212
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение новых типов
javapeckerДелфи?
Нет, кэп. Это - PHP. Ну где ещё все типы с T начинаются?
...
Рейтинг: 0 / 0
28.08.2012, 18:26:02
    #37934231
javapecker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение новых типов
Blazkowicz,

тогда может новый тип и не надо, может будет достаточно и этого:
Код: java
1.
ArrayList<HashMap<Integer, TFields>> tableList = new ArrayList<HashMap<Integer, TFields>>() ;
...
Рейтинг: 0 / 0
28.08.2012, 19:11:35
    #37934284
ErikI
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение новых типов
javapecker,

Так и было сделано, но более читаемо так:
Код: java
1.
TListTable ListTable = new TListTable();

Чем так:
Код: java
1.
ArrayList<HashMap<Integer, TFields>>  ListTable = new ArrayList<HashMap<Integer, TFields>>();


Переучиваюсь с Delphi на Java.
...
Рейтинг: 0 / 0
28.08.2012, 20:02:42
    #37934326
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение новых типов
javapeckerтогда может новый тип и не надо

Не надо, конечно. Но автор об этом вроде не спрашивал.

javapecker, может будет достаточно и этого:
Код: java
1.
ArrayList<HashMap<Integer, TFields>> tableList = new ArrayList<HashMap<Integer, TFields>>() ;


Трудно не согласиться.
...
Рейтинг: 0 / 0
28.08.2012, 20:09:42
    #37934338
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение новых типов
ErikIТак и было сделано, но более читаемо так:
Код: java
1.
TListTable ListTable = new TListTable();

Чем так:
Код: java
1.
ArrayList<HashMap<Integer, TFields>>  ListTable = new ArrayList<HashMap<Integer, TFields>>();



Нет это совсем не более читаемо. Так же как и менее модифицируемо.
- Нормальная IDE спрячет повторное описание генерика в new. Даже когда-то предлагали это в язык добавить. Но не срослось.
В вашем варианте
- Вы не видите чем наполнять переменную - надо смотреть объявление класса. Привыкнуть к генерикам сможете быстро. Просто надо дать им шанс.
- Вы привязываетесь к конкретному типу. Гораздо логичнее как можно больше использовать объявления вида
List<Map<Integer, TFields>> , потому что всегда можно заменить реализацию.
- Ну, и просто в Java не принято создавать классы только для того чтобы спрятать генерики. Они достаточно редко бывают двух и трех этажными.
- Стоит ознакомиться с общепринятыми Java Coding Convention (Oracle, Google, Apache), а не писать всё в стиле Delphi.
...
Рейтинг: 0 / 0
29.08.2012, 01:40:58
    #37934593
javapecker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение новых типов
Blazkowicz,
BlazkowiczДаже когда-то предлагали это в язык добавить. Но не срослось.
В седьмой джаве же вроде даймонд <> появился наконец-то.
...
Рейтинг: 0 / 0
29.08.2012, 01:45:31
    #37934594
dexsu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение новых типов
javapecker,

Код: java
1.
List<String> list = new LinkedList<>();
...
Рейтинг: 0 / 0
29.08.2012, 01:46:12
    #37934595
dexsu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение новых типов
Это для JDK 7
...
Рейтинг: 0 / 0
29.08.2012, 01:53:18
    #37934597
javapecker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение новых типов
dexsu, я так и написал
...
Рейтинг: 0 / 0
29.08.2012, 01:54:11
    #37934598
javapecker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение новых типов
только такое
Код: java
1.
ArrayList<HashMap<Integer, TFields>>


она не проглотит
...
Рейтинг: 0 / 0
31.08.2012, 15:01:27
    #37938912
rfq
rfq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение новых типов
javapeckerтолько такое
Код: java
1.
ArrayList<HashMap<Integer, TFields>>


она не проглотит

Пробельчик вставьте:

Код: java
1.
ArrayList<HashMap<Integer, TFields> >
...
Рейтинг: 0 / 0
31.08.2012, 15:52:56
    #37939019
javapecker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение новых типов
rfq, я уже проверил что проглотит, но при чем тут пробельчик?
...
Рейтинг: 0 / 0
31.08.2012, 19:06:38
    #37939354
dexsu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение новых типов
javapeckerтолько такое
Код: java
1.
ArrayList<HashMap<Integer, TFields>>


она не проглотит

Может стоит посмотреть в сторону com.google.common.collect.Table ?
...
Рейтинг: 0 / 0
01.09.2012, 02:44:52
    #37939621
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение новых типов
ErikIХочу узнать можно ли в java определять свои типы Антишаблон pseudo-typedef
...
Рейтинг: 0 / 0
01.09.2012, 23:32:39
    #37940172
javapecker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение новых типов
Usman, в 7 джаве вывод типов работает нормально
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Определение новых типов / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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