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?

questionAnswers(4)

yourAnswerToTheQuestion