Java有转换器吗?

时间:2017-06-24 09:33:12

标签: java

我正在寻找interface,它接受​​一种类型的通用Object,并返回另一种类型。实际上,它会对提供的值执行一种转换解释

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

public interface IConverter<T, U> {
    /** Converts the @param pT to one of type U. */
    U convert(final T pT);
}

但是,我不想重新发明轮子!

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

修改

我应该强调,要执行的转换完全取决于特定于上下文,并且它不必真正关注关于类中的基础数据;它可以是任意的。

想象一下我想提供Object的用户友好描述的用例。在此,我想提供Object个实例与String之间的翻译,而覆盖toString()

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

可能有更多方法可以做到这一点,但根据我的实践,我使用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);

希望这能解决您的使用案例。

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

如果您受到Java 7的限制,则可以包含Guava library,它提供与Java 8中类似的Functional interface semantics