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(); // Мурка мурчит
ТАк же хотел узнать про этот момент:
class Code<T> {
T inhabitant; // я так понимаю - это создание объекта обобщенного класса?
}