您可以通过将所有值放入HashMap中来实现联合(不带重复项的组合)。任何相等的键都将被覆盖。下面是一个使用
four different ways
这是一个工作样品。我用反射来填充地图。那可能不是你想要的。
public class Test {
public static void main(String[] args) throws JsonProcessingException, IllegalAccessException {
ProductionCast productionCast = new ProductionCast("1001", "Rajamouli");
MovieDetails movieDetails = new MovieDetails("1001", "Bahubali");
Map map = new HashMap<>();
fillMap(map, productionCast);
fillMap(map, movieDetails);
ObjectMapper mapper = new ObjectMapper();
System.out.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(map));
}
private static void fillMap(Map map, Object object) throws IllegalAccessException {
Field[] fields = object.getClass().getDeclaredFields();
for(Field field:fields) {
map.put(field.getName(), (String) field.get(object));
}
}
private static class ProductionCast {
public ProductionCast(String movieId, String director) {
this.movieId = movieId;
this.director = director;
}
public String getMovieId() {
return movieId;
}
public String getDirector() {
return director;
}
private String movieId;
private String director;
}
private static class MovieDetails {
private String movieId;
private String movieName;
public MovieDetails(String movieId, String movieName) {
this.movieId = movieId;
this.movieName = movieName;
}
public String getMovieId() {
return movieId;
}
public String getMovieName() {
return movieName;
}
}
}
输出
{
"director" : "Rajamouli",
"movieId" : "1001",
"movieName" : "Bahubali"
}