Java 如何接收特定枚举的typespecific类?

Java 如何接收特定枚举的typespecific类?,java,generics,enums,converter,Java,Generics,Enums,Converter,我需要某种转换器映射器,但没有想出任何好主意,如何使用特殊的转换器轻松附加枚举。我尝试了以下方法: //ConverterInterface: public interface PropertyConverter<T> { public String convertObjectToString( T object ); public T convertStringToObject( String string ); } //Concrete Converter publi

我需要某种转换器映射器,但没有想出任何好主意,如何使用特殊的转换器轻松附加枚举。我尝试了以下方法:

//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
{
}
//转换器接口:
公共接口属性转换器
{
公共字符串convertObjectToString(T对象);
公共T convertStringToObject(字符串);
}
//混凝土转炉
公共类FooConverter实现PropertyConverter
{
@凌驾
公共字符串convertObjectToString(Foo对象)
{
抛出新的UnsupportedOperationException(“尚未实现”);
}
@凌驾
public Foo convertStringToObject(字符串)
{
抛出新的UnsupportedOperationException(“尚未实现”);
}
}
//数据类
公开课Foo
{
}
Boo也是一样,这里是enum,我想将转换器附加到特定类型:

public enum PropEnum
{
  BOO(new BooConverter()),

  FOO(new FooConverter());

  PropertyConverter<?> converter;

  private PropEnum( PropertyConverter<?> converter )
  {
    this.converter = converter;
  }

  public PropertyConverter<?> getConverter()
  {
    return converter;
  }
}
公共枚举属性
{
BOO(新的BooConverter()),
FOO(新的FooConverter());
性能变换器;
私有属性(PropertyConverter转换器)
{
这个。转换器=转换器;
}
公共属性转换程序getConverter()
{
回流转换器;
}
}
但是,由于我的PropertyConverter使用通配符,当我像下面这样使用它时,我只获取对象到字符串和字符串到对象方法,而不是具体类型,如Foo到字符串和字符串到Foo:

//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
{
}


是否有任何方法可以从转换器实现接收具体类型?

如果不重复,则相关:。@Paul Bellorca:我知道,我不能将泛型与枚举一起使用,我只是认为可能有一个解决方法。无论如何,谢谢你的链接。@Jeffrey我可以问一下,如果不使用枚举,你将如何实现这种行为?@ymene这取决于你想做什么,但是你可以在某个类中使用
Map
,并允许注册/检索
PropertyConverter
s。