java - 可以通过值的类名称推断键名称的 HashMap

标签 java guava

有没有什么东西,也许是 Guava,可以从键值的类名或变量名推断出 HashMap 的键名?喜欢:

public Class MyBean {
   //basic properties, getters, setters, etc.
}

MyBean myBean = new MyBean();
Map<String, Object> myHashMap = new HashMap<String, Object>();
myHashMap.put(myBean);
System.out.println(myHashMap.get("myBean"));

最佳答案

从变量名来做到这一点是不可能的 - 因为当变量的被传递到put方法时,变量名实际上已经丢失了。可以有多个变量引用同一个对象,或者没有变量:

myHashMap.put(new SomeOtherBean()); // What key would be used?

通过类名来做到这一点很容易,但我怀疑它的实用性相当有限。

关于java - 可以通过值的类名称推断键名称的 HashMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5411870/

相关文章:

java - com.google.common.collect.Iterables 和实例类型

java - 如何在 Struts 2 的单个 View 中使用多个表单/操作

java - HashBasedTable 表<String,String,Double> HashMap<String,Double>

java - Guava @CompatibleWith 注释的目的是什么?

java - 使用像 Guava RateLimiter 这样的库比简单的 Thread.sleep 有什么优势?

java - 如何使用 Guava 将 MultiMap<Integer, Foo> 转换为 Map<Integer, Set<Foo>>?

java - Spring boot 为静态字段 Autowiring BeanCreationException

java - 具有绑定(bind)服务的 Activity 生命周期

java - 了解 Java 中未初始化的对象

java - 找不到类 com/google/common/util/concurrent/FutureFallback