当前位置: 首页 > 知识库问答 >
问题:

Java泛型-方法签名的上限[重复]

端木令
2023-03-14

我有一个方法,我想在其中接受必须扩展抽象类的类类型。之间的区别是什么

void myMethod(class clazz);

void myMethod(class clazz);

在第二种情况下,我不能直接引用方法内部的类型。哪些类类型可以传递给这两个方法有什么不同吗?

共有1个答案

通京
2023-03-14

不,与您提供的两个方法签名兼容的参数类型之间没有区别。就我个人而言,如果我需要引用参数所表示的确切类型,我会使用参数化版本,否则我会使用通配符版本。

 类似资料:
  • 问题内容: 我以为我明白了这一点,但显然不是…… 我有这样的方法签名: 但是如果我尝试打电话 我收到一个编译错误:“类型中的方法doSomething(List)…不适用于参数(List>)” 但是,如果我更改为 它仍然不起作用,但是 显然,它可以绕开泛型使用。 这似乎很奇怪。 有人可以填写我吗? 另外,在这种情况下,我想使用任何包含任何通用类型的TypeAs的List;undefined,Typ

  • 我正在尝试覆盖子类中从父类继承抽象方法的方法。我正在尝试更改泛型返回类型,但我有点困惑。 基本泛型类: 儿童班: 实施: 我想在其中覆盖参数化方法的子视图类: 这是Eclipse抛出错误消息的地方: 注意类和接口:事件和级别: 以及继承自 的 Model 类 我试图实现的是编写更抽象的代码,因为这些类、接口将被多个类扩展(在我的例子中是不同的视图类型)。这些是抽象类:< code>BaseAdap

  • 来自Java文档:在类C中声明的实例方法m1覆盖在类A中声明的另一个实例方法m2,如果以下所有条件都为真:。。。。。m1的签名是m2签名的子签名(§8.4.2)。 方法m1的签名是方法m2签名的子签名,前提是:m1的签名与m2签名的擦除相同(§4.6)。 是对一个 如果是这样,什么是错的? EDIT1:或者如果我切换通用类型: 这种情况下有什么问题? EDIT2:我知道如何修复它,但我想了解,在这

  • 这是如何编译的: 但这并不是: 它给我以下编译错误: Impl不是抽象的,并且不会覆盖测试中的抽象方法getValue(整数) 错误:名称冲突:Impl中的getValue(T)和测试中的getValue(Integer)具有相同的擦除,但两者都不重写另一个 擦除不能确保t被整数替换吗?那么为什么第二个例子是无效的呢?

  • 安吉丽卡·兰格(Angelica Langer)在关于仿制药的常见问题解答中说(参见Technicalities.FAQ822): 如果这些方法具有具有不同边界的类型参数,则它们不会重写,因为这些方法的签名不是重写等价的。请记住,类型参数边界是泛型方法签名的一部分。 示例(泛型子类型方法重载泛型超类型方法;不推荐): 我不明白为什么方法在类中重载。据我所知,这应该是一个编译时错误,因为在和中具有相