0
我有一个自定义限定符,它需要参数 - 枚举值。枚举值包含特定于所需实例构造的信息。将限定符传递给提供者方法
如果我到增加新的价值,枚举它会导致相同的样板代码模块中,像这样:
预选赛(JAVA):
@Documented
@Qualifier
@Retention(RUNTIME)
public @interface Format {
Type value() default SYSTEM;
enum Type {
UI("dd-MM-yyyy HH:mm"),
UI_DATE("EEEE,\u00A0dd MMMM yyyy"),
.
.
.
private String format;
public String getFormat() {
return format;
}
Type(String formatString) {
format = formatString;
}
}
}
模块(科特林):
@Module
class DateTimeModule {
@Provides
@Format(Format.Type.UI)
fun dateTimeFormatterUI(): DateTimeFormatter {
return DateTimeFormat.forPattern(Format.Type.UI.format).withLocale(DefaultConfigVariables.LOCALE)
}
@Provides
@Format(Format.Type.UI_DATE)
fun dateFormatterUI(): DateTimeFormatter {
return DateTimeFormat.forPattern(Format.Type.UI_DATE.format).withLocale(DefaultConfigVariables.LOCALE)
}
.
.
.
}
是否有可能以某种方式改变它,我只能添加一个新的实例枚举,它被传递给提供者方法或类似的东西?