项目使用的是JDK1.4版本,在xlsx2csv的时候代码   
 enum xssfDataType {
        BOOL, ERROR, FORMULA, INLINESTR, SSTINDEX, NUMBER,
    }
错误提示为
- 'enum' should not be used as an identifier, since it is a reserved keyword from source level 1.5 on请问有没有方法可以在JDK1.4中使用enum枚举。谢谢!

解决方案 »

  1.   

    木有办法,jdk1.4不支持enum关键字自己写个类代替吧,enum也是类,不过是块语法糖而已
      

  2.   

    class XssfDataType{
    static final int BOOL = 0;
    static final int ERROR = 1;
    static final int FORMULA = 2;
    static final int INLINESTR = 3;
    static final int SSTINDEX = 4;
    static final int NUMBER= 5;
      

  3.   


    定义了int变量后,
     private XssfDataType nextDataType;this.nextDataType = XssfDataType.NUMBER;
    后面的类型变量出错了。是不是需要把int类型改为xssfdatatype?谢谢。
      

  4.   

    你当 XssfDataType这个用? 
      

  5.   


    如果前面定义了static final int了,后面的xssfdatatype.number肯定也是int的,前面的this.nextdatatype也要随之改成int来判断么?
      

  6.   


    public class XssfDataType {
    static final XssfDataType BOOL = new XssfDataType(0);
    static final XssfDataType ERROR = new XssfDataType(1);
    static final XssfDataType FORMULA = new XssfDataType(2);
    static final XssfDataType INLINESTR = new XssfDataType(3);
    static final XssfDataType SSTINDEX = new XssfDataType(4);
    static final XssfDataType NUMBER= new XssfDataType(5);
    int ordin;//下标
    XssfDataType(int ordin){
    this.ordin = ordin;
    }
    }
      

  7.   


    还要请教一下。 private XssfDataType nextDataType;因为在enum枚举里面需要定义switch case方法,
    当 switch (nextDataType)时候,
    nextDataType定义类型是必须要int类型么?
    Cannot switch on a value of type XssfDataType. Only convertible int values or enum constants are permitted谢谢!
      

  8.   

    switch (nextDataType.ordinal){
    case 0:
    break;
    case 1:
    break;
    ....
    }
    这样不行吗?
      

  9.   


    问题解决了。非常感谢。
    再问一下,xlsx文件读取后删除
    File fileTemp = new File(path + filename + fileTypeNew);
    fileTemp.delete();
    为什么删不掉呢?.xls文件可以, .xlsx文件就删除不掉?
    前面已经.flush .close掉了fileout流了。
    非常感谢!
      

  10.   


    删除部分代码是
    if(filetype.equals("xls")){

    File fileTemp = new File(path + filename + fileType);
    fileTemp.delete();

    }

    if(filetype.equals("xlsx")){


    File fileTemp = new File(path + filename + fileTypeNew);
    fileTemp.delete();

    }
    谢谢!
      

  11.   

    String path = "";
    String filename = "2";
    String fileType = ".xlsx";
    File f = new File(path + filename + fileType);
    // f.delete();
    System.out.println(f.getAbsolutePath());
    System.out.println(f.delete());
    路径不对吧。
      

  12.   


    没有啊,打印出来的路径文件名都是正确的。但是就是delete删除不掉
    xls文件可以的。xlsx文件就不行。
      

  13.   


    System.out.println(fileTemp.delete());结果为false。
    但是我已经在delete之前都close了。
      

  14.   

    把该关的关掉,能删掉的,你自己试试。新建个demo做个实验就知道了,我估计你还有资源没释放。
    public static void main(String args[]) throws FileNotFoundException {
    String path = "";
    String filename = "b";
    String fileType = ".xlsx";
    File f = new File(path + filename + fileType);
    FileInputStream fis = new FileInputStream(f);
    try {
    fis.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    // f.delete();
    System.out.println(f.getAbsolutePath());
    System.out.println(f.delete());
    }
      

  15.   

    嗯,可以了。在写入csv文件的时候,没有释放掉input流。非常感谢,一直跟着我的帖子帮忙回答问题!!