Страница 1 из 1
<T>!!
Добавлено: 12 ноя 2012, 03:46
Foenix
Пожалуйста, подскажите! поиск по этому слову не работает, а мне желательно знать.. что это за тип такой Т?
Допустим я использую класс, где некая переменная объявлена как <T>. Чувствую, что я могу ее как-то переопределить под свои нужды, например, создать структуру-класс, запихнув туда то, что мне нужно..
подскажите, как это сделать, пожалуйста!
и еще, может быть кто-то знает ссылки, или хотя бы по каким словам искать информацию, ни гугл, ни яндекс не хотят искать эти три символа вместе..
Re: <T>!!
Добавлено: 12 ноя 2012, 09:03
rezak90
Re: <T>!!
Добавлено: 12 ноя 2012, 11:42
AndreyI
Повода для иронии не вижу, с учетом того, что сайт и форум ориентирован на начинающих.
В общих словах эти типы разработаны в основном для избежания ошибок, которые могут быть из-за неправильного приведения типов и были введены в JAVA только начиная с версии 1.5. С использованием генериков такие ошибки вычисляются уже на стадии компиляции.
Ранее обходились без них, к примеру при создании коллекций или массивов каждый его член просто считался типом Object. Если мы, скажем, создадим ArrayList со строками, а потом в каком-то методе попытаемся считать данные его элементов как Integer, то такая ошибка не будет определена на стадии компиляции, но мы получим исключение во время выполнения кода из-за невозможности приведения типа (cast exception). С применением обобщенных типов мы можем явно указать какой тип элементов используется (ArrayList <String>) и ошибки с неправильным приведением типов будут отлавливаться уже на стадии компиляции. Если у нас ArrayList со смешанными типапи, то мы всегда можем указать ArrayList<Object>, такая запись полностью идентична старой реализации ArrayList без генериков.
Re: <T>!!
Добавлено: 12 ноя 2012, 11:49
Foenix
Так и какого типа в результате эта переменная,
как мне это использовать?
я почитаю, т.к. мало поняла из объяснений..
Re: <T>!!
Добавлено: 12 ноя 2012, 11:57
AndreyI
Какой тип вы запишете вместо T такой и будет использоваться.
Re: <T>!!
Добавлено: 12 ноя 2012, 12:02
Foenix
т.е. я могу в метод, в котором один из параметров Т, передать фактически переменную любого созданного мною класса?
Re: <T>!!
Добавлено: 12 ноя 2012, 12:09
AndreyI
Конечно, в общем случае можно любые типы использовать в том числе и ваши собственные (класс объекта это и есть его тип другими словами).
В генериках JAVA есть механизм чтобы ограничивать используемые типы только определенными или являющимися наследниками определенных типов. Но если это не указано, то можно использовать любые типы.
Re: <T>!!
Добавлено: 12 ноя 2012, 12:27
Foenix
БОльшое спасибо, сейчас попробую!