2010-12-07 2 views
0

В следующем коде @ линии 4 & 5 я получаю ошибку The constructor DataSourceFactory.DATABASE_TYPE() is undefinedПочему я получаю сообщение об ошибке «Конструктор не определен»?

public class DataSourceFactory { 

    public enum DATABASE_TYPE {  
     DB2T { "DB2T url" }, 
     DB2Q { "DB2Q url" }; 

     private final String url;  

     DATABASE_TYPE(String _url){ 
      this.url = _url; 
     } 

     public String getUrl() { 
      return url; 
     }  

    }; 

    public static void main(String[] args) { 
     for (DATABASE_TYPE dt : DATABASE_TYPE.values()){ 
      System.out.println(dt.getUrl()); 

     } 
    } 
} 

и если я добавлю конструктор без аргументов, то я получаю ошибку Syntax error on token ""DB2T url"", delete this token.
В чем проблема?

ответ

9

Вы поместили аргументы конструктора в фигурные скобки, а не в скобки. Так что это:

DB2T { "DB2T url" }, 
DB2Q { "DB2Q url" }; 

должен быть

DB2T("DB2T url"), 
DB2Q("DB2Q url"); 

(В качестве побочного сведению, я лично не делать ваши имена типов Shouty, как правило, что ENUM значения являются Shouty, но имена. самих перечислений находятся в PascalCase как обычно.)

2

Вызов конструктора определяется как «()». "{}" является инициализатором массива. Таким образом, ваш запрос должен быть DB2T("DB2T url"),

Смежные вопросы