Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JUnit中的静态最终列表错误_Java_Junit - Fatal编程技术网

Java JUnit中的静态最终列表错误

Java JUnit中的静态最终列表错误,java,junit,Java,Junit,我已经编写了一个JUnit,它在其中调用一个常量类,这里我们试图访问一个静态最终列表 public static final List<String> SKIPPED_DIMENSION_LIST = new ArrayList<String>(); static{ SKIPPED_DIMENSION_LIST.add(PRODUCT_CATEGORY_DISPLAY); SKIPPED_DIMENSION_LIST.add(PRODUCT_CATEGORY_

我已经编写了一个JUnit,它在其中调用一个常量类,这里我们试图访问一个静态最终列表

public static final List<String> SKIPPED_DIMENSION_LIST = new ArrayList<String>();

static{ SKIPPED_DIMENSION_LIST.add(PRODUCT_CATEGORY_DISPLAY); 
    SKIPPED_DIMENSION_LIST.add(PRODUCT_CATEGORY_SUB); 
    SKIPPED_DIMENSION_LIST.add(PRODUCT_CATEGORY_SUB_GROUP); 
    SKIPPED_DIMENSION_LIST.add(PRODUCT_CATEGORY_SUB_GROUP_ID); 
    SKIPPED_DIMENSION_LIST.add(PRODUCT_CATEGORY_ID); 
    SKIPPED_DIMENSION_LIST.add(PRODUCT_CATEGORY_GROUP_ID); }
public静态最终列表跳过了_DIMENSION_List=new ArrayList();
静态{跳过维度列表。添加(产品类别显示);
跳过维度列表。添加(产品类别子项);
跳过维度列表。添加(产品类别子组);
跳过维度列表。添加(产品类别子组ID);
跳过维度列表。添加(产品类别ID);
跳过了维度列表。添加(产品类别组ID);}
现在,当通过JUnit线程访问这个列表时,我发现了这个错误

    java.lang.ExceptionInInitializerError
        at java.lang.J9VMInternals.initialize(J9VMInternals.java:222)
        at com.mns.commerce.searchnav.constants.MSEndecaConstants.<clinit>(MSEndecaConstants.java:169)
        at java.lang.J9VMInternals.initializeImpl(Native Method)
        at java.lang.J9VMInternals.initialize(J9VMInternals.java:200)
        at com.mns.commerce.searchnav.utils.MSSearchResposeBOTransformer.getRefinementsDetails(MSSearchResposeBOTransformer.java:460)
        at com.mns.commerce.searchnav.utils.MSSearchResposeBOTransformer.buildFacets(MSSearchResposeBOTransformer.java:362)
        at com.mns.commerce.searchnav.utils.MSSearchResposeBOTransformer.populateResults(MSSearchResposeBOTransformer.java:106)
        at com.mns.commerce.searchnavunit.test.MSSearchResposeBOTransformerTest.testPopulateResults(MSSearchResposeBOTransformerTest.java:97)
java.lang.ExceptionInInitializeError
在java.lang.J9VMInternals.initialize(J9VMInternals.java:222)中
在com.mns.commerce.searchnav.constants.MSEndecaConstants.(MSEndecaConstants.java:169)
位于java.lang.J9VMInternals.initializeImpl(本机方法)
在java.lang.J9VMInternals.initialize(J9VMInternals.java:200)中
在com.mns.commerce.searchnav.utils.MSSearchResposeBOTransformer.getRefinementsDetails(MSSearchResposeBOTransformer.java:460)
在com.mns.commerce.searchnav.utils.MSSearchResposeBOTransformer.buildFacets(MSSearchResposeBOTransformer.java:362)
在com.mns.commerce.searchnav.utils.MSSearchResposeBOTransformer.populateResults(MSSearchResposeBOTransformer.java:106)
在com.mns.commerce.searchnavunit.test.mssearchresposebottransformertest.testPopulateResults(mssearchresposebottransformertest.java:97)

然而,如果定义了一个静态
枚举
,而不是
静态最终列表
,那么它工作正常。知道为什么会这样吗

这段代码也在运行,我对这段代码没有任何错误。我的JDK版本是1.6

导入java.util.ArrayList; 导入java.util.List

public class test {

private static final String PRODUCT_CATEGORY_DISPLAY = "a";
private static final String PRODUCT_CATEGORY_SUB = "b";
private static final String PRODUCT_CATEGORY_SUB_GROUP = "c";
private static final String PRODUCT_CATEGORY_SUB_GROUP_ID = "d";
private static final String PRODUCT_CATEGORY_ID = "e";
private static final String PRODUCT_CATEGORY_GROUP_ID = "f";
public static final List<String> SKIPPED_DIMENSION_LIST = new ArrayList<String>();

static{          
    SKIPPED_DIMENSION_LIST.add(PRODUCT_CATEGORY_DISPLAY);
    SKIPPED_DIMENSION_LIST.add(PRODUCT_CATEGORY_SUB);
    SKIPPED_DIMENSION_LIST.add(PRODUCT_CATEGORY_SUB_GROUP);
    SKIPPED_DIMENSION_LIST.add(PRODUCT_CATEGORY_SUB_GROUP_ID);
    SKIPPED_DIMENSION_LIST.add(PRODUCT_CATEGORY_ID);
    SKIPPED_DIMENSION_LIST.add(PRODUCT_CATEGORY_GROUP_ID);
}      /**      * @param args      */     
public static void main(String[] args) {   
    System.out.println(SKIPPED_DIMENSION_LIST); 
} 

}
公共类测试{
私有静态最终字符串PRODUCT\u CATEGORY\u DISPLAY=“a”;
私有静态最终字符串产品\u类别\u SUB=“b”;
私有静态最终字符串产品\类别\子\组=“c”;
私有静态最终字符串产品\u类别\u子\u组\u ID=“d”;
私有静态最终字符串产品\u类别\u ID=“e”;
私有静态最终字符串产品\u类别\u组\u ID=“f”;
公共静态最终列表跳过了_DIMENSION_List=new ArrayList();
静态{
跳过维度列表。添加(产品类别显示);
跳过维度列表。添加(产品类别子项);
跳过维度列表。添加(产品类别子组);
跳过维度列表。添加(产品类别子组ID);
跳过维度列表。添加(产品类别ID);
跳过维度列表。添加(产品类别组ID);
}/***@param args*/
公共静态void main(字符串[]args){
System.out.println(跳过维度列表);
} 
}

如果从列表声明中删除最后一个修饰符,会发生什么?尝试在静态初始值设定项中的代码周围放置一个Try/catch(Throwable t)块,看看它是否实际引发了某种描述的异常。这会给你一个更好的线索。