首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java 11泛型代码生成未经检查的警告

Java 11泛型代码生成未经检查的警告
EN

Stack Overflow用户
提问于 2019-09-04 13:34:50
回答 1查看 87关注 0票数 1

在下面的示例中,我似乎无法消除未经检查的警告(除了禁止警告)。正如你在“2”中所看到的指定类型会导致编译错误。

压制是这里唯一的选择吗?

代码语言:javascript
复制
static class Cat { }

static class CatGiver<T extends Cat> {

    T cat;

    CatGiver(T cat) {
        this.cat = cat;
    }

    static <T extends Cat> CatGiver<T> get() {
        // 1. Unchecked assignment warning
        return new CatGiver(new Cat());

        // 2. Compile error on 'new Cat()' "T cannot be applied to Cat..."
        // return new CatGiver<T>(new Cat());
    }
}
EN

回答 1

Stack Overflow用户

发布于 2019-09-04 13:55:53

首先,您要创建一个原始类型。您需要指定类型。其次,您的静态方法,'T‘不是变量,您只能返回一个猫。

代码语言:javascript
复制
static CatGiver<Cat> get() {

    return new CatGiver<Cat>(new Cat());

}

您可以通过将cat或类的实例作为duplicate question中的答案传递给您的cat是泛型类型。

代码语言:javascript
复制
static <T extends Cat> CatGiver<T> get(T cat){
    return new CatGiver<>(cat);
}

那么T应该从论点中隐式地获得。(我还没有测试过。)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57789589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档