2015-11-20 3 views
4

Я работаю над применением swing в netbeans. Я создал один родительский класс и дочерний класс. Всякий раз, когда я вызываю какой-либо атрибут родительского класса через дочерний класс, я получаю ошибку. Как решить эту проблему:Как решить Нет Ошибка такого метода

это родительский класс:

public abstract class WorkRequest { 

private String name; 
public String getName() { 
    return name; 
} 

public void setName(String name) { 
    this.name = name; 
}} 

это дочерний класс:

public class DoctorTestWorkRequest extends WorkRequest { 

private String message; 

public String getMessage() { 
    return message; 
} 

public void setMessage(String message) { 
    this.message = message; 
} 

Я звоню класс ребенка в панели:

DoctorTestWorkRequest request = new DoctorTestWorkRequest(); 
    request.setName(name); 
    request.setMessage(message); 

I я получаю исключение:

Exception in thread "AWT-EventQueue-0" java.lang.NoSuchMethodError: Business.WorkQueue.DoctorTestWorkRequest.setName(Ljava/lang/String;)V 
at UserInterface.ReceptionistRole.DoctorTestWorkRequestJPanel.requestTestJButtonActionPerformed(DoctorTestWorkRequestJPanel.java:147) 

Как это решить. спасибо заранее

+3

Возможно, у вас есть старая версия класса в вашем пути к классу. очистить проект и перекомпилировать его – Jens

+0

При выполнении этой строки произошла ошибка: SmartHealthCareSystem \ nbproject \ build-impl.xml: 263: скомпилировано компиляция; см. вывод ошибки компилятора. –

+0

Что такое выход компилятора? Не могли бы вы [изменить] ваш вопрос, чтобы упомянуть об этом? – Arc676

ответ

-3

создать экземпляр WorkRequest, а затем инициализировать его DoctorTestWorkRequest

WorkRequest request = new DoctorTestWorkRequest;

это должно работать

+0

Как это было бы лучше, чем 'DoctorTestWorkRequest request = new DoctorTestWorkRequest();' (с кодовой точки зрения, не говоря о дизайне)? – Thomas

+0

Но при этом я не смогу получить доступ к атрибуту сообщения в дочернем классе. –

+0

'new DoctorTestWorkRequest;' не является правовой Java. – Jubobs

1

Проблема может быть в кэше IDE, так, чтобы быть уверенным, чтобы решить эту проблему переименовать WorkRequest класс WorkRequestNew и использовать новое имя в

public class DoctorTestWorkRequest extends WorkRequestNew

надеюсь, что это поможет.

+0

Да что сработало. Огромное спасибо. Почему это произошло? Можешь мне объяснить? –

+0

Да, эта проблема является общими во внутренних классах, ваш .class должен быть Business $ WorkQueue $ DoctorTestWorkRequest $ WorkRequest.class (вы можете увидеть ее в проблеме NetBeans: https://netbeans.org/bugzilla/show_bug.cgi?id= 247819) – kayosoufiane

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