gpt4 book ai didi

javac错误: inconvertible types with generics?

转载 作者:IT老高 更新时间:2023-10-28 20:32:45 25 4
gpt4 key购买 nike

还有其他几个 SO 问题谈论泛型编译 OK w/Eclipse 的编译器而不是 javac(即 Java: Generics handled differenlty in Eclipse and javacGenerics compiles and runs in Eclipse, but doesn't compile in javac )——但这看起来有点不同。

我有一个 enum 类:

public class LogEvent {
public enum Type {
// ... values here ...
}
...
}

我有另一个类,它的方法接收从 Enum 继承的任意类型的对象:

@Override public <E extends Enum<E>> void postEvent(
Context context, E code, Object additionalData)
{
if (code instanceof LogEvent.Type)
{
LogEvent.Type scode = (LogEvent.Type)code;
...

这在 Eclipse 中运行良好,但是当我使用 ant 进行干净构建时,我得到一对错误,一个在 instanceof 行,另一个在类型转换线:

443: inconvertible types
[javac] found : E
[javac] required: mypackage.LogEvent.Type
[javac] if (code instanceof LogEvent.Type)
[javac] ^

445: inconvertible types
[javac] found : E
[javac] required: com.dekaresearch.tools.espdf.LogEvent.Type
[javac] LogEvent.Type scode = (LogEvent.Type)code;
[javac] ^

为什么会发生这种情况,我怎样才能解决这个问题以便正确编译?

最佳答案

我不知道为什么会这样,但解决方法很简单:

@Override public <E extends Enum<E>> void postEvent(
Context context, E code, Object additionalData)
{
Object tmp = code;
if (tmp instanceof LogEvent.Type)
{
LogEvent.Type scode = (LogEvent.Type)tmp;
...

它很丑,但它有效......

关于javac错误: inconvertible types with generics?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4829576/

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