使用文件作为参数调用构造函数

时间:2013-04-29 05:39:52

标签: java

我有一个类SpellingSuggestor,其构造函数具有签名


public SpellingSuggestor(File file) throws IOException { // something }

我想从另一个类调用它的构造函数。代码就是这样的

public class NLPApplications
    public static void main(String[] args) {    
        String w= "randomword";
        URL url = getClass().getResource("big.txt");
        File file = new File(url.getPath());

        System.out.println((new SpellingSuggestor(file)).correct(w));   
    }
}

但上面显示了URL url..行中的错误

  1. 无法将网址解析为某种类型。
  2. 无法对Object类型的非静态方法getClass()进行静态引用。
  3. 出了什么问题?


    我看了这个问题How to pass a text file as a argument?。我不习惯用Java处理文件,所以这个问题。

3 个答案:

答案 0 :(得分:2)

导入:

import java.net.URL;

使用class literal:

URL url = NLPApplications.class.getResource("big.txt");

答案 1 :(得分:2)

getclass()是一种非静态方法,您无法通过静态主方法进行引用。

为什么会这样? find here it is already answereddanben

解决方法是 -

NLPApplications.class.getClass().getResource("big.txt");

答案 2 :(得分:2)

因为您尝试在静态Main方法中访问非静态方法(不允许),您必须使用TheClassName.class而不是getClass()