gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 01:46:23 24 4
gpt4 key购买 nike

在下面的示例中,我似乎无法摆脱未经检查的警告(无法抑制它)。正如您在“2”中所看到的。指定类型会导致编译错误。

压制是唯一的选择吗?

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());
}
}

最佳答案

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

static CatGiver<Cat> get() {

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

}

您可以通过传递猫或类的实例作为duplicate question中的答案来让您的猫成为通用类型。 .

static <T extends Cat> CatGiver<T> get(T cat){
return new CatGiver<>(cat);
}

那么 T 应该从参数中隐式获取。 (我没有测试过。)

关于Java 11 泛型代码生成未经检查的警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57789589/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com