Java 对象的一般下界

Java 对象的一般下界,java,generics,Java,Generics,可以将绑定的通用参数编码为: public <T super Object> void someMethod(T t); public方法(T); 是否有效使用了此类边界?根据JLS,类型参数(扩展对象>术语)包括: TypeParameter: TypeVariable TypeBound* TypeBound: extends TypeVariable extends ClassOrInterfaceType AdditionalBoundList*

可以将绑定的通用参数编码为:

public <T super Object> void someMethod(T t);
public方法(T);
是否有效使用了此类边界?

根据JLS,类型参数(扩展对象>术语)包括:

TypeParameter:
    TypeVariable TypeBound*

TypeBound:
    extends TypeVariable
    extends ClassOrInterfaceType AdditionalBoundList*

AdditionalBoundList:
    AdditionalBound AdditionalBoundList
    AdditionalBound

AdditionalBound:
    & InterfaceType
*=可选

您可以看到
排版
,只指定了
扩展的用法。
遗憾的是,未指定使用
super
的下限类型参数。下限仅在通配符用法()中指定


好问题,这让我深入JLS,我不知道为什么它没有在java中实现,只是没有指定。

这样一个较低的键是完全无用的。如果您想要一个只能接受对象的模板,那么您所要做的就是删除所有通用模板,并使用对象作为您的类型直接为您的类编写代码

对于对象以外的其他类型,它也没有任何意义。为什么需要一个模板来接受类型a的对象或不接受类型a的对象(例如对象),但当B是a的子类时拒绝类型B的对象?这完全不合逻辑


与接口的想法相同:您可以接受任何根本没有实现接口I或实现接口I的类型,但您可以拒绝一个不仅具有接口I而且扩展了接口I的类型???

您确定这是有效的语法吗?我在Eclipse中遇到语法错误。
标记“super”上的语法错误,我得到的是预期的
。注意:我在iPhone上写了这个问题,手头没有编译器-它无法编译。