После вчерашнего отличного ответа Coobird вчера у меня возникли проблемы с размышлениями о работе на Java.Сначала я опубликую классы, а затем подробно расскажу.
StHandler.java
package ds; public interface StHandler {
public void read();
}
DiStHandler.java
package ds;
public class DiStHandler {
public void read() {
System.out.println("Hello world");
}
Server.java
package ds;
public class Server {
public static void main(String[] args) {
try {
Class<?> clazz = Class.forName("ds.DiStHandler");
StHandler input = (StHandler) clazz.newInstance();
input.read();
}
catch(Exception e) {}
}
Что я пытаюсь сделать: у меня есть интерфейс StHandler, который на данный момент я хочу иметь единственный метод: read ().DiStHandler - это класс реализации, доступный из пути к классам.Я пытаюсь вызвать метод чтения отсюда.
Проблема: На линии
StHandler input = (StHandler) clazz.newInstance();
Я получаю сообщение об ошибке: ds.DiStHandler cannot be cast to ds.StHandler
У меня естьпытался отладить это в течение почти двух часов, но я не могу понять, в чем проблема.Причина, по которой у меня нет implements StHandler
в DiStHandler, заключается в том, что я создаю DiStHandler в отдельном проекте.
Буду очень признателен за любые советы по этому вопросу.Большое спасибо заранее,
M