NoClassDefFoundError无法初始化类

时间:2016-06-07 15:46:11

标签: java

我有一个类,它从数据库中获取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在运行时无法使用上面的类,但为什么呢?任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

这种情况正在发生,因为你的变量是静态的,并且在使用者中你试图改变变量。它将尝试重新初始化哪些是不可能的。

相关问题