Dead Simple Java IO&恩赐问题

时间:2010-12-04 08:39:02

标签: java enums io

我知道有一些简单的东西我很想丢失,但以下代码不会使用println来写文本:

import java.io.*;   
import javax.swing.JOptionPane;

public class ConfigureSettings{   
    private PrintWriter SettingsFile;   
    private enum Dodge{   
        Ascending, Descending, Off  
    };   
    private enum Damage{   
        Ascending, Descending, Off   
    };   
    private enum DPS{   
        Ascending, Descending, Off   
    };   

    ConfigureSettings(){
        try{
            SettingsFile = new PrintWriter(new File("UserSettings"));
        }
        catch(IOException e){
            JOptionPane.showMessageDialog(null, "Sorry cannot open UserSettings File");
        }
        SettingsFile.println("k");
        JOptionPane.showMessageDialog(null, "Done");
    }

    public static void main(String args[]){
        new ConfigureSettings();
    }
}

我的枚举问题是我可以创建枚举的枚举吗?我的意思是我可以在Super enum类中包装我拥有的三个当前枚举变量Dodge Damage和DPS吗?

P.S。我知道我的代码显示不正确,有关未来帖子/编辑的任何提示吗?

1 个答案:

答案 0 :(得分:2)

关于缺少println输出:您是否在flush之后PrintWriter尝试了println,并明确close当你不再需要它时呢?

至于你的 enum enum问题 - 枚举的枚举会有什么好处?你的意思是这样的(我刚刚编造的 - 我很确定它不会编译):

private enum Enumenum {
    enum Dodge {
        Ascending, Descending, Off
    },
    enum Damage {
    Ascending, Descending, Off
    },
    enum DPS {
        Ascending, Descending, Off
    }
}

你会对这么复杂的枚举做什么?为什么不简单:

    enum OneForAll {
        Ascending, Descending, Off
    }

然后使用这个枚举而不是其他三个,因为它们都包含相同的枚举值吗?

(更新:请注意,使用相同的枚举而不是三个单独的枚举可能会降低代码的类型安全性,因此上述建议可能不一定是件好事。)