Tôi muốn tạo một HashMap
ánh xạ các loại lớp cụ thể cho một đối tượng mới cụ thể duy nhất.Làm thế nào để tạo một HashMap kiểu generic chung theo loại lớp?
Sau đó tôi muốn chuyển loại lớp và nhận tham chiếu đến đối tượng cụ thể đó. đơn giản ví dụ:
Map<Class<?>, ?> values = new HashMap<>();
public <T> t get(Class<T> type) {
return values.get(type);
}
//pet and car do not share any interface or parent class
class Pet;
class Car;
//error: not applicable for arguments
values.put(Pet.class, new Pet());
values.put(Car.class, new Car());
sử dụng:
values.get(Pet.class);
Làm thế nào tôi có thể tạo ra một hashmap và tra cứu hàm tổng quát như vậy cho phù hợp?
Bạn đang tìm kiếm ổi của [ 'ClassToInstanceMap'] (https://code.google.com/p/guava -thư viện/wiki/NewCollectionTypesExplained # ClassToInstanceMap)? –
Tuyệt vời, có lẽ đây là những gì tôi đang cố gắng tái tạo lại;) – membersound