Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Что такое обобщения и как они используються в java

женя терехов Ученик (205), на голосовании 1 год назад
Недавно начал изучать обобщения в джава, но не могу понять как и в каких ситуациях использовать обобщения.
ТАк же хотел узнать про этот момент:

class Code<T> {
T inhabitant; // я так понимаю - это создание объекта обобщенного класса?
}
Голосование за лучший ответ
Андрей Панарин Искусственный Интеллект (249310) 1 год назад
T inhabitant - это объявление поля обобщенного типа в обобщенном классе.
По сути, это будет поле типа Object. Но при обращении к этому полю компилятор будет неявно приводить это поле к тому типу, который был задан при создании объекта типа Code. А вы с ним будете работать так, будто оно имеет заявленный тип, а не Object.

Например, мы можем создать объекты типа Code с разными типовыми параметрами и класть в их поля inhabitant данные разных типов:
 Code intCode = new Code<>();
intCode.inhabitant = 10;

System.out.println(intCode.inhabitant + 20); // 30

Code stringCode = new Code<>();
stringCode.inhabitant = "Василий";

System.out.println(stringCode.inhabitant + 20); // Василий20

Code catCode = new Code<>();
catCode.inhabitant = new Cat("Мурка");

catCode.inhabitant.purr(); // Мурка мурчит
Похожие вопросы