还有其他一些SO问题在讨论可以使用Eclipse的编译器而不是javac进行泛型编译的问题(即Java:泛型在Eclipse和javac中处理不同,而泛型可以在Eclipse中编译和运行,但不能在javac中编译)-但这看起来就像一个稍微不同的人。
我有一enum堂课:
public class LogEvent {
public enum Type {
// ... values here ...
}
...
}
我还有一个带有方法的类,该方法接受来自Enum以下类型的任意对象:
@Override public > 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] ^
为什么会发生这种情况,如何解决这个问题以便正确编译呢?