0

ある種の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はワイルドカードを使用しているため、次のように使用すると、FooToStringやStringToFooなどの具体的な型ではなく、ObjectToStringメソッドとStringToObjectメソッドしか取得できません。

enumConverter

コンバーターの実装から具体的なタイプを受け取る方法はありますか?

4

0 に答える 0