调试时未找到源消息

时间:2012-08-03 21:24:03

标签: java eclipse debugging singleton factory-pattern

有没有人在我的代码中看到任何奇怪的内容? 这是解析器工厂类,用于存储解析器的实例。我在文本文件中保存信息对象,通常格式为

/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"

1 个答案:

答案 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();
    }
}