Что произойдет в результате компиляции и запуска следующей программы:

package X;
public class X<X> {
    X x;
    public X(){  }
    public X(X x){ 
        this.x=x;
    }
    public <Y extends X> Y Y(Y y){
        return y;
    }
}

class Y<Y extends X> extends X{
    private static Integer Y = 5;
    public static void main(String...X){
        System.out.print(new X().Y(Y).toString());
    }
}
Explanation
В случае вызова метода " public <Y extends X> Y Y(Y y)" можно передавать на вход любой объект. Y - в этом методе не имеет никакого отношения к определенному ниже классу. Поскольку при создании экземпляра класса X не был указан generic тип, то можно передавать любой объект на вход метода.

Следи за CodeGalaxy

Мобильное приложение Beta

Get it on Google Play
Обратная Связь
Продолжайте изучать
тесты по Java
Cosmo
Зарегистрируйся сейчас
или Подпишись на будущие тесты