.source(Person.class) .target(User.class) .field("name", "username") .field("age", "age") .field("emailAddresses", "emails") .converter("age", AgeConverter.class) .converter("emailAddresses", EmailConverter.class) .build(); User user = Grafter.transform(person, User.class); <people> <person> <name>John</name> <age>30</age> <email>john@example.com</email> <email>j.doe@example.com</email> </person> <person> <name>Jane</name> <age>25</age> <email>jane@example.com</email> </person> </people> <rules> <rule source="Person" target="User"> <field source="name" target="username"/> <field source="age" target="age"/> <field source="email" target="emails"/> <converter field="age" class="com.example.AgeConverter"/> <converter field="email" class="com.example.EmailConverter"/> </rule> </rules> DataSource source = new FileDataSource("person.xml"); RuleSource ruleSource = new FileRuleSource("rules.xml"); GrafterConfig config = new GrafterConfig() .dataSource(source) .ruleSource(ruleSource); Grafter grafter = new DefaultGrafter(config); User user = grafter.transform("Person", "User", person); public class AgeConverter implements Converter<Integer, Integer> { public Integer convert(Integer input) { return input + 10; } } public class EmailConverter implements Converter<Collection<String>, String> { public String convert(Collection<String> input) { return input.iterator().next(); } }


上一篇:
下一篇:
切换中文