我需要某种 Converter-Mapper 并且没有想出任何好主意,如何轻松地使用特殊转换器附加枚举。我尝试了以下方法:
//ConverterInterface:
public interface PropertyConverter<T>
{
public String convertObjectToString( T object );
public T convertStringToObject( String string );
}
//Concrete Converter
public class FooConverter implements PropertyConverter<Foo>
{
@Override
public String convertObjectToString( Foo object )
{
throw new UnsupportedOperationException( "Not implemented yet." );
}
@Override
public Foo convertStringToObject( String string )
{
throw new UnsupportedOperationException( "Not implemented yet." );
}
}
//Dataclass
public class Foo
{
}
Boo 也是如此,这里是枚举,我想将转换器附加到特定类型:
public enum PropEnum
{
BOO(new BooConverter()),
FOO(new FooConverter());
PropertyConverter<?> converter;
private PropEnum( PropertyConverter<?> converter )
{
this.converter = converter;
}
public PropertyConverter<?> getConverter()
{
return converter;
}
}
但是由于我的 PropertyConverter 使用通配符,当我像下面这样使用它时,我只得到对象到字符串和字符串到对象方法而不是具体类型,例如 Foo 到字符串和字符串到 Foo:
有没有办法从转换器实现中接收具体类型?