2

我有一个类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. URL 无法解析为类型。
  2. 无法从 Object 类型对非静态方法 getClass() 进行静态引用。

出了什么问题?


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

4

3 回答 3

2

进口 :

import java.net.URL;

使用类文字:

URL url = NLPApplications.class.getResource("big.txt");
于 2013-04-29T05:42:06.603 回答
2

getclass()是一种非静态方法,您不能从静态 main 方法中进行引用。

为什么会这样?在这里找到它已经danben回答了

解决方法是 -

NLPApplications.class.getClass().getResource("big.txt");
于 2013-04-29T05:46:07.017 回答
2

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

于 2013-04-29T05:51:06.867 回答