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

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
Зареєструйся Зараз
або Підпишись на майбутні тести