#java
Для чего используются сигнатуры классов, вроде Name>
Ответы
Ответ 1
Такая конструкция позволяет из класса родителя возвращать тип потомка. Поясню на примере. Есть два класса: static class C{ public C firstMethod() { return this; } } static class D extends C { public D secondMethod() { return this; } } Мы можем легко написать следующее: new D<>().secondMethod().firstMethod(); Но обратное не получится сделать: new D<>().firstMethod().secondMethod(); Т.к. в классе C в методе возвращается объект типа C, а в нем не определен secondMethod. Для избежания подобной ситуации, пишут следующее: static class A > { public T value; public T firstMethod() { return value; } } static class B extends A> { public B secondMethod() { return this; } } Это позволяет писать: new B<>().firstMethod().secondMethod(); new B<>().secondMethod().firstMethod();
Комментариев нет:
Отправить комментарий