无法编译实现了Interface类的java类

时间:2011-06-13 08:08:11

标签: java interface

我无法通过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 个答案:

答案 0 :(得分:3)

这里有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 

答案 1 :(得分:2)

看起来您的接口类在物理上名为MyInterfaceImple.java,但您的代码将其称为MyInterfaceImpl - (没有e)。

代码中使用的名称需要与物理文件匹配。还要检查这两个类是否在类路径中。