2013-06-20 2 views
-4

Это тестовый класс, в котором у меня есть ошибка, и я не могу понять, что именно.Ошибка в Java Test Class

import java.util.*; 
public class EmployeeTest 
{ 

public static void main(String[] args) { 
    Employee e = new Employee(); 
    e.setId("100012"); 
    e.setLastname("Smith"); 
    ResponsibilityDecorator d; 
    d = new Recruiter(e); 
    d = new CommunityLiaison(e); 
    d = new ProductionDesigner(e);  
    System.out.println(e.toString()); 
} 
} 

И это класс, который содержит ссылки на тестовый класс

public class Employee 
{ 

String id; 
String lastname; 

Employee(String id, String lastname) 

{ 

    this.id=id; 
    this.lastname=lastname; 

} 
EmploymentDuties eduties=new EmploymentDuties(); 

public EmploymentDuties getDuties() 
{ 
    return eduties; 
} 
public String toString(){ 
    return "Duties for this employee: "+eduties.jobtitles; 
} 

public void setId(String id) 
{ 
    this.id = id; 
} 

public void setLastname(String lastname) 
{ 
    this.lastname = lastname; 
} 


} 
+5

как вы можете сказать, что у вас есть ошибка ?! трассировки стека? или ваш идеал что-то маркирует? –

+0

Дайте нам ключ: какая ошибка вы видите? – DaveH

ответ

8

Там нет нет-арг конструктор в Employee. Добавьте параметры, чтобы использовать существующий конструктор в EmployeeTest

Employee e = new Employee("100012", "Smith"); 

заявлений

e.setId("100012"); 
e.setLastname("Smith"); 

затем избыточными и могут быть удалены.

+0

хорошее наблюдение – Mubin

+0

проклятие .... 3 секунды слишком поздно ;-) –

+0

Ошибка im get in Employee e = new Employee(); – user2478522

1

Ваш класс Employee определяет ровно один конструктор: Employee (String, String). Убедитесь, что вы вызываете его из EmployeeTest или определяете конструктор без параметров.

0

Конструктор по умолчанию - это конструктор, предоставляемый java, в отсутствие какого-либо конструктора, предоставленного вами.

После того как вы поместили какой-либо конструктор, конструктор по умолчанию больше не поставляется.

вы создали конструктор

Employee(String id, String lastname) 

{ 

и используя как

Employee e = new Employee(); //not possible 
+0

Теперь я получаю эту ошибку при запуске программы: – user2478522

+0

@ user2478522 см. Reimus ответьте, чтобы использовать его. –

+0

java.lang.UnsupportedClassVersionError: EmployeeTest: Неподдерживаемая версия major.minor 51.0 \t Не удалось найти основной класс: EmployeeTest. Программа будет закрыта. Исключение в теме «main» Java Результат: 1 – user2478522

0

конструктор по умолчанию является конструктором без аргументов автоматически , если вы не определите другой конструктор.

Этот конструктор по умолчанию:

Employee() {} 

Затем вы можете создавать объекты, такие как:

Employee e = new Employee(); 

если вы определить, по крайней мере, один конструктор явно, конструктор по умолчанию не создается.