java - 如何将 Java String 转换为 Enum ConverterFactory 类到 Kotlin
问题描述
我无法将以下转换器工厂类转换为将 spring 5 中的字符串转换为枚举类型到 kotlin。请帮帮我。
@Component
public class StringToEnumConverterFactory
implements ConverterFactory<String, Enum> {
private static class StringToEnumConverter<T extends Enum>
implements Converter<String, T> {
private Class<T> enumType;
public StringToEnumConverter(Class<T> enumType) {
this.enumType = enumType;
}
public T convert(String source) {
return (T) Enum.valueOf(this.enumType, source.trim());
}
}
@Override
public <T extends Enum> Converter<String, T> getConverter(
Class<T> targetType) {
return new StringToEnumConverter(targetType);
}
}
解决方案
我做了类似的事情:
class StringToEnumConverterFactory : ConverterFactory<String, Enum<*>?> {
override fun <E : Enum<*>?> getConverter(clazz: Class<E>): Converter<String, E> {
return StringToEnumConverter(clazz)
}
}
class StringToEnumConverter<T : Enum<*>?>(private val enumClass: Class<T>) : Converter<String, T> {
override fun convert(source: String): T? {
if (source.isEmpty()) {
return null
}
return enumClass.enumConstants.first { it!!.name == source.trim() }
}
}
我希望这有帮助!
推荐阅读
- registration - 在 SITK 中相互注册两个图像的最佳方法?
- jenkins - 詹金斯在工作区目录中创建多个文件?
- python - 尝试在python中创建Circle类,现在几乎成功了,唯一剩下的问题是如何在历史列表中保留以前的半径而不是替换它
- python - FASTAPI 自定义中间件在内部获取请求主体
- sql - 内部连接语法错误,但现在确定错误是什么
- mysql - 如何从 MySQL 中的两个不同表中减去列中的值?
- python - 如何解决混淆 TypeError 和 Pickle
- makefile - 如何在 Makefile 中取消定义变量
- python - 如何在函数式编程中定义一个函数?
- azure - 将 Windows Azure 应用服务恢复到原始/默认状态