从命令提示符编译时,在java中找不到符号错误

时间:2017-05-01 08:12:20

标签: java java-8

您好我在名为Utility的目录下创建了两个Java文件,如下所示:

  1. FileName.java
  2. public class FileName {
      private String name;
      public FileName (String name) {
          //some code
      }
      String getName() {
          return name;
      }
    }
    
    1. FileNameReader.java
    2. public class FileNameReader {
      
        public static void main(String[] args) throws IOException {
            FileName obj = new FileName("testfile.txt");
        }
      
      }
      

      现在,当我正在编辑throw命令提示符时,编译器给出了错误,指出无法在FileName obj = new FileName();这一行

2 个答案:

答案 0 :(得分:0)

下面:

public SearchFile(String name) {

这将是一个名为SearchFile的类的构造函数。

但是你的类被命名为FileName;所以你必须将所有内容(类和文件名)重命名为SearchFile;或者你改变ctor来代替public FileName(String name)

除此之外:该类有一个构造函数采用字符串参数。但是你的另一个课程是new FileName()而没有提供论证。这也行不通。

但真正的答案是:这种“微妙”细节很重要。您必须支付关闭关注您记下的每一行代码。并且:在“完成”您认为应该编译的内容后立即运行编译器。你没有用10,20,50行代码创建2,3个文件,然后发现每个文件中都有一堆问题!

答案 1 :(得分:0)

您的FileNameReader课程中存在问题:

  1. 您需要通过添加

    导入IOException
    import java.io.IOException;
    
  2. 您已为FileName创建了一个带有String参数的显式构造函数,因此隐式默认构造函数不再可见。您需要在创建新实例时提供String

    FileName obj = new FileName("someString");
    
  3. 此FileNameReader.java编译:

    import java.io.IOException;
    
    public class FileNameReader {
    
      public static void main(String[] args) throws IOException {
          FileName obj = new FileName("someString");
      }
    
    }