ClassToInstanceMap示例

x33g5p2x  于2022-10-05 转载在 其他  
字(1.5k)|赞(0)|评价(0)|浏览(541)

示例测试类

  1. class Person {
  2. private String name;
  3. public Person(String name) {
  4. super();
  5. this.name = name;
  6. }
  7. public String getName() {
  8. return name;
  9. }
  10. @Override
  11. public String toString() {
  12. return Objects.toStringHelper(this)
  13. .add("name", name)
  14. .toString();
  15. }
  16. }
  17. class Jobs {
  18. private String jobName;
  19. public Jobs(String jobName) {
  20. super();
  21. this.jobName = jobName;
  22. }
  23. public String getJobName() {
  24. return jobName;
  25. }
  26. @Override
  27. public String toString() {
  28. return Objects.toStringHelper(this)
  29. .add("jobName", jobName)
  30. .toString();
  31. }
  32. }
  33. class Address {
  34. private String streetName;
  35. public Address(String streetName) {
  36. super();
  37. this.streetName = streetName;
  38. }
  39. public String getStreetName() {
  40. return streetName;
  41. }
  42. @Override
  43. public String toString() {
  44. return Objects.toStringHelper(this)
  45. .add("streetName", streetName)
  46. .toString();
  47. }
  48. }

ClassToInstanceMap

  1. @Test
  2. public void classToINstanceMap_example () {
  3. Person person = new Person("Jackson");
  4. Jobs jobs = new Jobs("IT person");
  5. Address address = new Address("505 Williams Street");
  6. ClassToInstanceMap<Object> classToInstanceMap = MutableClassToInstanceMap.create();
  7. classToInstanceMap.put(Person.class, person);
  8. classToInstanceMap.put(Jobs.class, jobs);
  9. classToInstanceMap.put(Address.class, address);
  10. logger.info(classToInstanceMap);
  11. assertEquals("IT person", classToInstanceMap.getInstance(Jobs.class).getJobName());
  12. }

输出

  1. {
  2. class com.levelup.java.guava.ClassToInstanceMapExample$Jobs=Jobs{jobName=IT person},
  3. class com.levelup.java.guava.ClassToInstanceMapExample$Person=Person{name=Jackson},
  4. class com.levelup.java.guava.ClassToInstanceMapExample$Address=Address{streetName=505 Williams Street}
  5. }

相关文章