将类放入包后,Java不兼容类型错误

时间:2015-05-11 01:52:01

标签: java package javac incompatibletypeerror

我有一个名为" shapefile"其中包含IndexFileReader和IndexFile类。 IndexFileReader返回IndexFile类型的对象。

然后我有一个名为ReadFiles的类,它导入" shapefile"并使用IndexFileReader创建IndexFile。

import java.io.IOException;
import shapefile.*;
public class ReadFiles {
    public static void main(String[] args) throws IOException{
        IndexFile indexFile;
        indexFile = IndexFileReader.readIndexFile("FilePath/FileName.shx");
    }
}

我的文件位于文件夹中,如下所示:

  • JavaProjects
    • shape文件
      • IndexFileReader.java
      • IndexFile.java
    • MyProject的
      • ReadFiles.java

我从这样的Windows命令行编译shapefile项目,它编译得很好:

cd JavaProjects
javac .\shapefile\*.java

我像这样编译我的项目,我收到一个错误:

cd MyProject
javac -cp .. ReadFiles.java

错误:

ReadFiles.java:8: error: incompatible types
            indexFile = IndexFileReader.readIndexFile("FilePath/FileName.shx");
                                                     ^
required: IndexFile
found:    shapefile.IndexFile

这对我来说是新的,我相信我在运行javac时遇到了问题。我之前已经成功编译了ReadFiles,我想我是用我在这里打印的相同命令完成的。我实际上仍然有成功编译时的ReadFiles.class文件,它运行没有任何问题,这就是为什么我认为我没有正确使用javac。

  1. 为什么Java在需要" IndexFile"的对象后发出错误?并接收" shapefile.IndexFile"?的对象这些物体属于同一类型吗?
  2. 为什么我的IndexFileReader类返回类型" shapefile.IndexFile"的对象?而不是#34; IndexFile"类型的对象
  3. 有没有我的文件/文件夹如何布局会导致编译问题?
  4. 我提供什么命令让Windows正确使用javac来编译我的包并编译我的ReadFiles类?
  5. 我查看了其他不兼容的类型问题,但我找不到一个让我朝着正确方向前进的问题。

0 个答案:

没有答案