java - 将字段转换为 HashMap

标签 java hashmap

我想循环访问类的字段,例如 Class.getDeclaredFields() 但现在我想检查一个字段是否是 HashMap,如果是,则应该删除 它的一值(value)。 我怎样才能达到这个目标? 我一无所知,但正在努力

这是我到目前为止的代码:(它使用了 Spigot API)

@EventHandler
public void onInvClose(InventoryCloseEvent e) {
    Player p = (Player) e.getPlayer();

    List<RegisteredListener> listeners = HandlerList.getRegisteredListeners(Core.core);
    for(RegisteredListener l : listeners) {
        Field[] fields = l.getClass().getDeclaredFields();
        for(Field field : fields) {
            // Check if field is a HashMap
            if(field.getType().isAssignableFrom( HashMap.class )) {

                // Remove Player p from field

            }
        }
    }
}

最佳答案

var map = (Map<Player, YourValueObject>)field.get(l);应该可以工作,然后只需用 p 键删除即可。 虽然我现在无法在手机上尝试。

关于java - 将字段转换为 HashMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51309373/

相关文章:

java - 如何检索分层 URI 中的属性?

java - 使用 tomcat 打包 activeMq (java)

java - 在 Rythm 中使用另一个变量设置一个变量

java - JAVA中Dbpedia资源解析

java - HashMap - 搜索对象的值并添加到列表

java - 移动数组中的元素

Java hashmap 不允许调用 get 方法

java - 计算 "Flower Objects"数组中出现的次数

java - 当我编写以下代码时,为什么我的输出是 "4 10 7"而不是 "4 3 10 7"

android - 如何删除hashmap中的重复值