Невозможно скомпилировать Java-класс, в котором реализован класс Interface. - PullRequest
0 голосов
/ 13 июня 2011

Я не могу скомпилировать через CMD класс, который реализует интерфейс. Но это работает с любой Java IDE. Какие-либо предложения? Спасибо.

Тезисы являются кодами.

//Interface (MyInterface.java)
public interface MyInterface{ 
    public int add(int a, int b); 

}


//(MyInterfaceImpl.java)
public class MyInterfaceImpl implements MyInterface { 

   public int add(int a, int b){ 
     return a + b; 
   }
}


\>javac MyInterface.java
\>javac MyInterfaceImple.java
MyInterfaceImpl.java:2: cannot file symbol
symbol: class MyInterface
public class MyInterfaceImpl implements MyInterface{

1 error

Ответы [ 2 ]

3 голосов
/ 13 июня 2011

У вас есть трейлинг e здесь

javac MyInterfaceImple.java
                     ^

но не здесь

//(MyInterfaceImpl.java)

, что может быть проблемой.


Также, еслиВаш интерфейс / класс находятся в пакете, это может быть проблемой.Если это так, пожалуйста, укажите package строки и структуру каталогов.


Все работает, как и ожидалось, на моей машине.Вот демо:

aioobe@e6510:~/tmp/java$ cat -> MyInterface.java
    //Interface (MyInterface.java)
    public interface MyInterface{ 
        public int add(int a, int b); 

    }
aioobe@e6510:~/tmp/java$ cat -> MyInterfaceImpl.java
    //(MyInterfaceImpl.java)
    public class MyInterfaceImpl implements MyInterface { 

       public int add(int a, int b){ 
         return a + b; 
       }
    }

aioobe@e6510:~/tmp/java$ 
aioobe@e6510:~/tmp/java$ ls
MyInterfaceImpl.java  MyInterface.java
aioobe@e6510:~/tmp/java$ javac MyInterface.java 
aioobe@e6510:~/tmp/java$ javac MyInterfaceImpl.java 
2 голосов
/ 13 июня 2011

Похоже, ваш класс интерфейса физически называется MyInterfaceImple.java, но ваш код ссылается на него как MyInterfaceImpl - (без символа e).

Имена, используемые в вашем коде, должны соответствовать физическим файлам.Также проверьте, что оба класса находятся в вашем classpath.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...