Java有转换器吗?

Java有转换器吗?,java,Java,我正在寻找一个接口,它接受一种类型的泛型对象,然后返回另一种类型。实际上,它对提供的值执行某种转换或解释 我可以轻松创建一个类,如下所示: public interface IConverter<T, U> { /** Converts the @param pT to one of type U. */ U convert(final T pT); } 公共接口IConverter{ /**将@param pT转换为U类型之一*/ U转换(最终T pT); }

我正在寻找一个
接口
,它接受一种类型的泛型
对象
,然后返回另一种类型。实际上,它对提供的值执行某种转换或解释

我可以轻松创建一个类,如下所示:

public interface IConverter<T, U> {
    /** Converts the @param pT to one of type U. */
    U convert(final T pT);
}
公共接口IConverter{
/**将@param pT转换为U类型之一*/
U转换(最终T pT);
}
然而,我不想重新发明轮子

Java 7中是否存在我应该使用的现有类

编辑

我应该强调,要执行的转换完全是上下文特定的,它不必真正关心类中的底层数据;它可以是完全任意的


想象一下,在这个用例中,我想提供一个
对象的用户友好描述。在这里,我想提供
对象
实例和
字符串
之间的转换,而不重写
toString()

对于大多数常见格式,有许多转换器:

  • 从字符串(json格式)到bean
  • 从字符串(xml格式)到bean
  • 从地图到bean
  • 从bean到Map
  • 从数组到列表
  • 从列表到数组
  • 从字符串到日期

Java8引入了Lambda表达式,并通过
Java.util.function.function
的匿名实例实现它们,提供方法
R apply(T)

可能有更多的方法来实现,但根据我的实践,我使用ObjectMapper将一个对象转换为另一个对象

import com.fasterxml.jackson.databind.ObjectMapper;
//then declear the ObjectMapper variable
ObjectMapper mapper = new ObjectMapper();
//In your method where you want to convert object just write below code.
mapper.convertValue(T, U.class);

希望这将解决您的用例。

如果您受到Java 7的限制,您可以包括提供与Java 8类似的功能的功能。

谢谢,那将是完美的,但我正在使用Java 7!我将更新这个问题。谢谢Davide,但我正在寻找一个使用泛型类型限定符的类。嗨,Nishant,我当前的应用程序使用Jackson,所以这看起来非常有前景。然而,我很好奇。。。如果这些类彼此没有关系呢?每个
类中的成员变量是否需要拥有匹配的
@JsonProperty
s?Hi@AlexT。若类之间并没有关系,那个么类需要自己的映射,因为ObjectMapper处理反射,所以你们可以参考更好的答案。