java - 这个 Java HashMap 声明有什么问题?轻松点

标签 java hashmap declaration

private HashMap<String, IMapper> mapper = new HashMap<String, IMapper>();

看起来很无辜,但 Eclipse 却在提示所有事情中的分号。

Eclipse 错误:标记“;”的语法错误,无效的 AssignmentOperator

谢谢

全类:

package persistence;

import java.util.UUID;
import java.util.HashMap;

import domain.Task;

public class PersistanceFacade {

    private static PersistanceFacade uniqueInstance = null;
    private HashMap<String, IMapper> mapper = new HashMap<String, IMapper>();


    (SingleTaskRDBMapper) mapper.put("SingleTask", new SingleTaskRDBMapper());

    public PersistanceFacade() {};

    public static synchronized PersistanceFacade getUniqueInstance() {
        if (uniqueInstance == null) {
            uniqueInstance = new PersistanceFacade();
            return uniqueInstance;
        }
        else return uniqueInstance;
    }

    @SuppressWarnings("unchecked")
    public Object get(UUID oid, Class type) {
        Object mappers;
        IMapper mapper = ((HashMap<String, IMapper>) mappers).get(type);
    }

}

最佳答案

线

(SingleTaskRDBMapper) mapper.put("SingleTask", new SingleTaskRDBMapper());

不合时宜。你应该把它放在构造函数中:

public PersistanceFacade() {
  mapper.put("SingleTask", new SingleTaskRDBMapper());
}

另请注意,我在构造函数的右大括号后删除了多余的分号。我也不确定 get 方法中发生了什么。您声明对象 mappers 但从未对其进行初始化。那肯定会导致错误。

关于java - 这个 Java HashMap 声明有什么问题?轻松点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4476031/

相关文章:

java - 数组和 For 循环 (JAVA)

Java:如何将 HashMap<String, Object> 转换为数组

java - HashMap 的迭代器是故障安全的吗?

jsf - 在 h :dataTable 中使用 java.util.Map

codeigniter 检查是否加载了库/帮助程序/核心文件的正确方法

c++ - C++类构造函数中 "inline"的理解?

java - 如何从 PHP 5 使用 Java

Java检测 float 是正数还是负数

java - 二月显示为有效日期存在问题

ruby-on-rails - 如果我使用 '||=' 声明一个常数值,会发生什么(坏的)?