泛型-方法返回类型作为扩展类

稻田

我正在尝试在Java 6中实现这一点:

abstract class CurrClass{
    public <T extends CurrClass> T setField (String str) {
        return this;
    }
}

编译器抱怨错误Type mismatch: cannot convert from CurrClass to T.

添加演员表,并显示警告"return (T) this;"

有没有更干净的语法可以做到这一点?为什么需要演员表?

gt

返回类型比返回的对象更具限制性。这就是为什么编译器生成错误(以及随后的警告)的原因。考虑这种情况:

class A extends CurrClass {}
class B extends CurrClass {}

...

A myObject = new B().setField("stringhere");

这在您的设置中是完全合法的,但会导致ClassCastException

这就是为什么通常我们只返回比签名要求更多的限制类型的原因

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

返回泛型类型的泛型方法

来自分类Dev

泛型作为方法返回类型

来自分类Dev

泛型类型的扩展方法

来自分类Dev

泛型类型与扩展方法

来自分类Dev

如何使用泛型返回泛型类的类类型?

来自分类Dev

泛型与扩展方法

来自分类Dev

泛型类型作为函数返回类型

来自分类Dev

使用泛型类型作为异步方法的返回类型

来自分类Dev

尽管返回类型已经定义,但泛型方法定义包含<T扩展类>。

来自分类Dev

使用类对象作为泛型类型

来自分类Dev

使用类实例作为泛型类型

来自分类Dev

使用泛型作为返回类型

来自分类Dev

泛型方法和泛型类中的类型推断

来自分类Dev

非泛型方法是否可以返回泛型类型?

来自分类Dev

如何创建泛型方法以返回泛型类型

来自分类Dev

泛型类,泛型本身就是泛型

来自分类Dev

如何返回泛型类型的类

来自分类Dev

泛型方法类型不能用作泛型类的泛型类型

来自分类Dev

泛型类型推断的 Typescript 泛型

来自分类Dev

从泛型类调用泛型EventHandler

来自分类Dev

泛型类的泛型构造函数

来自分类Dev

泛型类使用泛型参数

来自分类Dev

嵌套泛型类型的扩展方法

来自分类Dev

泛型 List<> 类型的扩展方法

来自分类Dev

用于返回类的不同泛型类型的实例的单个方法

来自分类Dev

Thrift 类型作为泛型

来自分类Dev

泛型类作为参数

来自分类Dev

泛型foreach的泛型方法

来自分类Dev

Java泛型扩展