Como pidió aquí el seguimiento a esta pregunta # 58538732
Según lo sugerido por Lukas Eder me escribió una EnumConverter
para convertir la Integer
a unaDayOfWeek
public class DOWConverter extends EnumConverter<Integer, DayOfWeek> {
public DOWConverter()
{
super(Integer.class, DayOfWeek.class);
}
}
El select
ahora ve la siguiente
DataType<DayOfWeek> typeDOW = SQLDataType.INTEGER.asConvertedDataType(new DOWConverter() /*ERROR*/);
Field<DayOfWeek> fieldDOW = DSL.field("{0}", typeDOW, lecture.DAY_OF_WEEK);
create.select( ..., fieldDOW, ...)...
Con el mensaje de error:
Excepción en el hilo "principal" java.lang.Error: no resuelto problema de compilación:
No se encierra instancia de tipo QueryFeaturesTask es accesible. Debe calificar la asignación con una instancia que encierra de tipo QueryFeaturesTask (egxnew A () en la que x es una instancia de QueryFeaturesTask).
Como se ha dicho, utilizando el convertidor en CodeGen Tiempo actualmente no es una opción.
Parece que usted puso su DOWConverter
interior de otra clase, creando así una clase interna . Recomiendo colocar el convertidor en el nivel superior, en su propio archivo, por lo que es una clase de nivel superior. Si debe crear una clase anidada, asegúrese de que no es una clase interna por lo que es estática:
public class Enclosing {
// Make this class here static:
public static class DOWConverter extends EnumConverter<Integer, DayOfWeek> {
public DOWConverter() {
super(Integer.class, DayOfWeek.class);
}
}
}
El tutorial de Oracle en clases anidadas explica esto muy bien .