我有一个类,它正在从数据库获取值的 List
,我需要将这些值设置为 map
,
public class LocationField {
@Resource
protected static SearchDaoImpl searchDao;
public static List<Object[]> list = searchDao.getResult();
private static final Map<String,LocationField> TYPES = new LinkedHashMap<String, LocationField>();
static{
new LocationField(list);
}
public LocationField() {
//do nothing
}
public LocationField(List<Object[]> listObject) {
for (Object[] listObject: list)
new LocationField(listObject[0].toString,listObject[1].toString)
}
private String type;
private String friendlyType;
public LocationField(final String type, final String friendlyType) {
this.friendlyType = friendlyType;
setTypes(type);
}
private void setType(final String type) {
this.type=type;
if (!TYPES.containsKey(type))
TYPES.put(type,this)
}
}
}
上面的代码对于静态
数据运行良好,并且设置为map
对象例如:
LocationField field1 = new LocationField("ok", "okay");
LocationField field2 = new LocationField("hi", "hai");
但是我需要从database
获取值,并且需要设置为map
对象,所以,我改变了一些内容,如第一段代码所示,但是问题是我收到异常消息
嵌套异常是 java.lang.NoClassDefFoundError:无法初始化类 com.mycompany.LocationField
它没有显示行
号来找出实际发生异常的位置。
我无法弄清楚这是什么原因?据我所知,上面的类在运行时不可用于 jvm ,但为什么呢?谁能帮我解决这个问题吗?
最佳答案
发生这种情况是因为您的变量是静态的,并且在 consutructir 中您试图更改该变量。它将尝试重新初始化,但这是不可能的。
关于java - NoClassDefFoundError 无法初始化类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37683858/