0
package org.test.toolkit.file;

public interface FileType {

    public enum Image implements FileType {

        JPG;

        public String toString() {  //duplicated code
            return "." + super.toString().toLowerCase();
        };
    }

    public enum Office implements FileType {

        DOC;

        public String toString() {
            return "." + super.toString().toLowerCase();
        };
    }

    public enum PlainText implements FileType {

        TXT;

        public String toString() {  //duplicated code
            return "." + super.toString().toLowerCase();
        };
    }

}

重複コードを効率的に削除する方法。おそらく、他のクラスオブジェクトで定義された静的メソッドの使用を検討する必要がありますか? または、私の問題を解決するためのより良い方法はありますか?

    public String toString() {
        return "." + super.toString().toLowerCase();
    };
4

1 に答える 1

3
public enum Type
{
  Image,Document,Text;
}
public enum FileType
{
   DOC(Type.Document), JPG(Type.Image),GIF(Type.Image),TXT(Type.Text);
   private Type type;
   private FileType(Type t)
   {
      this.type=t;
   }
   public Type getType()
   {
      return type;
   }
   public String toString()
   {
       return "." + super.toString().toLowerCase();
   }
}

?

于 2012-07-31T01:37:02.490 に答える