2013-04-29 3 views
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. не может статически ссылаться на нестатический метод getClass() из типа Object.

Что происходит не так?


Я посмотрел на этот вопрос How to pass a text file as a argument?. Мне неудобно обрабатывать файлы на Java и, следовательно, этот вопрос.

ответ

2

getclass() не является статическим методом, и вы не можете сделать ссылку из статического основного метода.

почему это так? find here it is already answered по danben

И Обходной -

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

Импорт:

import java.net.URL; 

Используйте класс буквального:

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

Даже тогда он дает сообщение об ошибке «URL не может быть разрешен для типа». – OneMoreError

+0

Отредактировал мой ответ. – NINCOMPOOP

+0

Yups .. получил !! благодаря – OneMoreError

2

потому, что вы пытаетесь получить доступ к не-статический метод в статическом методе Main, не допускается, вы должны использовать TheClassName.class вместо getClass().

Смежные вопросы