我有一个类,它从数据库中获取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)
}
}
}
之前的代码适用于static
数据,并且设置为map
对象ex:
LocationField field1 = new LocationField("ok", "okay");
LocationField field2 = new LocationField("hi", "hai");
但是我需要从database
获取值并需要设置为map
对象,所以我改变了第一段代码所示的内容,但问题是我得到了一个例外说
nested exception is java.lang.NoClassDefFoundError: Could not initialize class com.mycompany.LocationField
没有显示line
数字以找出实际异常的位置。
我无法弄清楚这是什么原因?据我所知,jvm
在运行时无法使用上面的类,但为什么呢?任何人都可以帮我解决这个问题吗?
答案 0 :(得分:0)
这种情况正在发生,因为你的变量是静态的,并且在使用者中你试图改变变量。它将尝试重新初始化哪些是不可能的。