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

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 тип, то можно передавать любой объект на вход метода.

Follow CodeGalaxy

Mobile Beta

Get it on Google Play
Send Feedback
Keep exploring
Java quizzes
Cosmo
Sign Up Now
or Subscribe for future quizzes