erro javac: tipos inconversíveis com genéricos?
Existem várias outras perguntas sobre SO falando sobre os genéricos compilarem o OK com o compilador do Eclipse, mas não o javac (ou seja,Java: genéricos manipulados differenlty no Eclipse e javac eOs genéricos compilam e executam no Eclipse, mas não compilam no javac) - no entanto, isso parece um pouco diferente.
eu tenho umenum
classe:
public class LogEvent {
public enum Type {
// ... values here ...
}
...
}
e eu tenho outra classe com um método que aceita objetos arbitrários de tipos descendentes deEnum
:
@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;
...
Isso funciona bem no Eclipse, mas quando eu faço uma limpeza construída comant
, Estou recebendo um par de erros, um noinstanceof
linha, o outro na linha de fundição:
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] ^
Por que isso acontece e como posso solucionar esse problema para que ele seja compilado corretamente?