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/