java - 极其简单的 Java IO 和枚举问题

标签 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();
    }
}

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

附注我知道我的代码显示不正确,对 future 的帖子/编辑有任何提示吗?

最佳答案

关于失踪println输出:你尝试过flush荷兰国际集团PrintWriter之后println ,并明确close当您不再需要它时会使用它吗?

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

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

您会如何处理如此复杂的枚举?为什么不简单地:

    enum OneForAll {
        Ascending, Descending, Off
    }

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

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

关于java - 极其简单的 Java IO 和枚举问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4352686/

相关文章:

java - 有没有办法获得像unix中/dev/null这样的位桶的路径?

Java:光标如何自动从一个 TextField 移动到另一个

java - AES 加密初始化错误

没有抗锯齿的 Java Slick scale 图像

java - 如何在 spring 数据 jpa 规范中将枚举作为字符串处理

http - 从某些函数调用时,Haskell System.Timeout.timeout崩溃

java - 每当鼠标在场景上移动时如何使节点移动(在 JavaFX 中)?

java - JDK1.7 - 检索值中带有点的枚举常量

c# - 具有 Entity Framework 的枚举 - 独立于表行 ID 的枚举值

postgresql - Cassandra 如何处理磁盘 IO