有没有人在我的代码中看到任何奇怪的内容? 这是解析器工厂类,用于存储解析器的实例。我在文本文件中保存信息对象,通常格式为
/table/something/something
nameoftablecolumn/info/info/...
etc.
我有解析这个文本文件的类,解析器可以解析不同的行。例如,如果行开始/ table /我将选择调用getParser(“table”)的表解析器。 当我想解析视图时,我遇到了一些问题。我试图通过在Eclipse中进行调试来找到它,但它告诉我源代码未找到并且在debuging中的操作列表中显示了类未找到异常..但程序中没有例外..
当我通过F5跳转到ParserFactory的构造函数时会发生这种情况。
有这个类的代码:
/**
*
*/
package appInspector.input.parser;
import java.util.HashMap;
import appInspector.input.parser.database.SourceParser;
import appInspector.input.parser.database.TableParser;
import appInspector.input.parser.database.ViewParser;
import appInspector.input.parser.filesystem.DirectoryParser;
import appInspector.input.parser.filesystem.FileParser;
/**
*
*/
public class ParserFactory {
private HashMap<String, IParser> parsers = new HashMap<String, IParser>();
private ParserFactory() {
//filesystem
parsers.put("directory", new DirectoryParser());
parsers.put("file", new FileParser());
//table
parsers.put("table", new TableParser());
//view
parsers.put("view", new ViewParser());
//source
parsers.put("source", new SourceParser());
}
public static ParserFactory newInstance(){
return new ParserFactory();
}
public IParser getParser(String key) {
IParser parser = parsers.get(key);
if(parser == null ){
System.out.println("Nepodporovaný objekt");
}
return parser;
}
}
修改 我有类似的问题(类似的输出 - 意味着没有找到源)。 Eclipse debugging "source not found"
答案 0 :(得分:0)
我尝试在我的Eclipse版本上复制该问题但是无法做到。我在Eclipse JUNO,OSX Mountain Lion。
我修改了你的代码以测试它:
package com.aj.spring;
import java.util.HashMap;
/**
* *
*/
public class ParserFactory {
private HashMap<String, IParser> parsers = new HashMap<String, IParser>();
private ParserFactory() {
parsers.put("directory", new FileParser());
parsers.put("file", new FileParser());
parsers.put("table", new FileParser());
parsers.put("view", new FileParser());
parsers.put("source", new FileParser());
}
public static ParserFactory newInstance() {
return new ParserFactory();
}
public IParser getParser(String key) {
IParser parser = parsers.get(key);
if (parser == null) {
System.out.println("Nepodporovan objekt");
}
return parser;
}
public static void main(String[] args) {
ParserFactory.newInstance();
}
}