2010-12-04 13 views
0

私が欠けている死んでシンプルなものがある知っているが、次のコードは、printlnを使用してテキストを書き込みません:デッド単純なJava IO&列挙質問が

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

私の列挙の質問があり、私が作成することができますEnumerationの列挙型ですか?スーパーenumクラスで、私が現在持っている3つの列挙型変数Dodge DamageとDPSをラップできますか?

P.S.私のコードが正しく表示されていないことを知っています、将来の投稿/編集のヒント?あなたはprintlnPrintWriterをINGのflushを試みたが、あなたは、もはやそれを必要とするときに明示的closeがそれをINGのなかった:行方不明println出力に関する

+0

コードのフォーマットについて:あなたは4つのスペースでコードブロックをインデントする必要があり、それは正しく表示されます。 [Markdown formatting help](http://stackoverflow.com/editing-help)を見てください。 – stakx

+0

@stakx情報をありがとう、私はあなたの質問を更新しました – Malaken

答えて

2

について列挙型の列挙型の質問 —列挙型の列挙型は何に適していますか?あなたは(私はちょうど私はそれがコンパイルされませんかなり確信している—を作った)このような何かを意味するか:

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

あなたは、このような複雑な列挙型とは何だろうか?なぜ単に:

enum OneForAll { 
     Ascending, Descending, Off 
    } 

そしてそれらはすべてがとにかく同じ列挙値を含んでいるので、他の三つの代わりにこの列挙型を使用できますか?

は(更新:上記の提案は必ずしも良いことではないかもしれませんので、代わりに3つの別々の列挙型の同じ列挙型を使用すると、非常によく、あなたのコードの型安全性を減らすかもしれないことに注意してください。)

+0

'OneForAll'のような1つの列挙型を使うと、' enum'キーワードがJavaに追加することになっていた列挙型が型破りになります。 – rsp

+1

@rspの場合、型の安全性が低下していると思います。 (一方で、列挙型の列挙型を作成することはそれほど優れていないようです:3つの列挙型が混在しないようにするには、安全に入力してください。おそらく、それらを "融合"するべきではありません)1つのスーパーエニュウムに) – stakx

+0

うわー私は単にフラッシュし、その後、プリントライターのオブジェクトを閉じ、それは私の問題を修正しました。なぜあなたは説明できますか?だから、私は似たような誤りを犯さないでしょう。 – Malaken