Guest User

Untitled

a guest
Jun 25th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.55 KB | None | 0 0
  1. import com.google.gson.Gson;
  2. import com.google.gson.GsonBuilder;
  3.  
  4. import java.util.ArrayList;
  5.  
  6. class Convoy {
  7. private ArrayList<Vehicle> vehicles = new ArrayList<>();
  8.  
  9. public void add(Vehicle vehicle) {
  10. vehicles.add(vehicle);
  11. }
  12. }
  13.  
  14. abstract class Vehicle {
  15. private int maxSpeed;
  16. //...
  17. }
  18.  
  19. class Car extends Vehicle {
  20. private int cargoCapacityInLiter;
  21. //...
  22. }
  23.  
  24. class Plane extends Vehicle {
  25. private int wingspanInMeter;
  26. //...
  27. }
  28.  
  29. class Bicycle extends Vehicle {
  30. private int frameHeight;
  31. //...
  32. }
  33.  
  34. public class Main {
  35. public static void main(String[] args) {
  36. RuntimeTypeAdapterFactory<Vehicle> vehicleAdapterFactory = RuntimeTypeAdapterFactory.of(Vehicle.class, "type")
  37. .registerSubtype(Car.class, "Car")
  38. .registerSubtype(Plane.class, "Plane")
  39. .registerSubtype(Bicycle.class, "Bicycle");
  40.  
  41. Gson gson = new GsonBuilder()
  42. .registerTypeAdapterFactory(vehicleAdapterFactory)
  43. .create();
  44.  
  45. String carJson = gson.toJson(new Car(), Vehicle.class);
  46. String planeJson = gson.toJson(new Plane(), Vehicle.class);
  47. String bicycleJson = gson.toJson(new Bicycle(), Vehicle.class);
  48.  
  49. System.out.println(carJson);
  50. System.out.println(planeJson);
  51. System.out.println(bicycleJson);
  52.  
  53. Convoy convoy = new Convoy();
  54. convoy.add(new Car());
  55. convoy.add(new Plane());
  56. convoy.add(new Bicycle());
  57.  
  58. String convoyJson = gson.toJson(convoy);
  59.  
  60. System.out.println(convoyJson);
  61. }
  62. }
Add Comment
Please, Sign In to add comment