gpt4 book ai didi

java - 警告 "unchecked call"和 "unchecked conversion"

转载 作者:行者123 更新时间:2023-12-01 17:28:24 29 4
gpt4 key购买 nike

当我编译代码时,我收到 4 个警告 - 但如何让它们消失?(我的意思不是@SuppressWarnings)

PS:显然这一定是以前被问过的 - 但要么我找不到它,要么我无法应用它。

<小时/>

输出

warning: [unchecked] unchecked call to BaseWorker(C) as a member of the raw type BaseWorker
[warn] return new BaseWorker(this);

warning: [unchecked] unchecked conversion
[warn] found : com.crashnote.BaseWorker
[warn] required: com.crashnote.BaseWorker<C>
[warn] return new BaseWorker(this);

warning: [unchecked] unchecked call to SubWorker(C) as a member of the raw type SubWorker
[warn] return new SubWorker(this);

warning: [unchecked] unchecked conversion
[warn] found : com.crashnote.SubWorker
[warn] required: com.crashnote.SubWorker<C>
[warn] return new SubWorker(this);
<小时/>

源代码

BaseConfig:实例化BaseWorker

public class BaseConfig<C extends BaseConfig> {

public BaseConfig(final Object c) {
}

public BaseWorker<C> getWorker() {
return new BaseWorker(this);
}
}

基础工作人员

public class BaseWorker<C extends BaseConfig> {

public BaseWorker(final C config) {
}
}

SubConfig:实例化SubWorker

class SubConfig<C extends SubConfig> extends BaseConfig<C> {

public SubConfig(final Object c) {
super(c);
}

@Override
public SubWorker<C> getWorker() {
return new SubWorker(this);
}
}

SubWorker:继承自SubWorker

public class SubWorker<C extends BaseConfig> extends BaseWorker<C> {

public SubWorker(final C config) {
super(config);
}
}
<小时/>

编辑

我尝试了提供的解决方案,但由于某种原因它现在失败了。

A)

return new BaseWorker<BaseConfig>(this);

结果

incompatible types
[error] found : BaseWorker<BaseConfig>
[error] required: BaseWorker<C>
[error] return new BaseWorker<BaseConfig>(this);

B)

return new BaseWorker<C>(this);

结果

cannot find symbol
[error] symbol : constructor BaseWorker(BaseConfig<C>)
[error] location: class BaseWorker<C>
[error] return new BaseWorker<C>(this);

嗯,也许我做错了什么。顺便说一下,这是 Java 6,以防万一。

最佳答案

而不是返回普通的

return new BaseWorker(this);

使其通用,因为您的 BaseWorker 类被定义为通用类。

return new BaseWorker<C>(this);

同样的规则也适用于 SubWorker

return new SubWorker<C>(this);

更新:

根据异常消息,您的构造函数还缺少泛型。

关于java - 警告 "unchecked call"和 "unchecked conversion",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13272381/

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