这个方法正确吗?(Java中的有界类型变量)

这个方法正确吗?(Java中的有界类型变量),java,variables,generics,types,bounded-types,Java,Variables,Generics,Types,Bounded Types,在这个关于Java泛型的教程中,作者试图展示如何编写一个方法头,该方法头使用泛型来检查该方法作为参数的对象的父类是否实现了某个接口 涉及以下课程: public interface Juicy<T> { Juice<T> squeeze(); } class Orange extends Fruit implements Juicy<Orange>; class RedOrange extends Orange; 开始时如果你只想挤

在这个关于Java泛型的教程中,作者试图展示如何编写一个方法头,该方法头使用泛型来检查该方法作为参数的对象的父类是否实现了某个接口

涉及以下课程:

public interface Juicy<T> {
    Juice<T> squeeze();
}

    class Orange extends Fruit implements Juicy<Orange>;
    class RedOrange extends Orange;

开始时
如果你只想挤一份血橙清单,为什么不干脆列一份血橙清单呢?不要在那里使用泛型,但是,如果一个
RedOrange
是一个
Orange
并且你想要像一个
Orange
那样挤压一个
RedOrange
,什么阻止了你?@chieftwoipencils没有什么阻止我,我只是想知道方法头是否可以简化?目标是否只是返回其泛型类型与方法参数的泛型类型共同响应的Juice对象?我感觉像是
List挤压所有(List
<T extends Juicy<? super T>> List<Juice<? super T>> squeezeSuperExtends(List<? extends T> fruits);
<T extends Juicy<T>> List<Juice<? super T>> squeezeSuperExtends2(List<? extends T> fruits)
<T extends Juicy<? super T>> List<Juice<? super T>> squeezeSuperExtends3(List<T> fruits)