static <ENTITY, D, E extends Enum<E>, FK>
    EnumForeignKeyField<ENTITY, D, E, FK> create(
            ColumnIdentifier<ENTITY> identifier,
            ReferenceGetter<ENTITY, E> getter,
            ReferenceSetter<ENTITY, E> setter,
            TypeMapper<D, E> typeMapper,
            HasComparableOperators<FK, E> referenced,
            Function<E, String> enumToString,
            Function<String, E> stringToEnum,
            Class<E> enumClass) {

        return new EnumForeignKeyFieldImpl<>(
            identifier, getter, setter, typeMapper, referenced,
            enumToString, stringToEnum, enumClass
        );
    }
Create a new instance of this interface using the default implementation.

@param <ENTITY>      the entity type
@param <D>           the database type
@param <E>           the java enum type
@param <FK>          the foreign key entity type
@param identifier    the column that this field represents
@param getter        method reference to the getter in the entity
@param setter        method reference to the setter in the entity
@param typeMapper    the type mapper that is applied
@param referenced    the field in the foreign entity that is referenced
@param enumToString  method to convert enum to a string
@param stringToEnum  method to convert a string to enum
@param enumClass     the enum class

@return            the created field
runtime-parent/runtime-field/src/main/java/com/speedment/runtime/field/EnumForeignKeyField.java