javac 错误:具有泛型的不可转换类型?
2022-09-01 22:43:12
还有其他几个SO问题谈论泛型编译OK与Eclipse的编译器,但不是javac(即Java:泛型在Eclipse和javac中处理差异,Generics在Eclipse中编译和运行,但不在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] ^
为什么会发生这种情况,我该如何解决这个问题,以便它能够正确编译?