0

誰かが私のコードで奇妙なことを見ますか? これは、パーサーのインスタンスを格納するパーサー ファクトリ クラスです。私はテキストファイルに保存された情報オブジェクトをデータベースに通常の形式で持っています

/table/something/something
nameoftablecolumn/info/info/...

etc.

このテキスト ファイルを解析するためのクラスがあり、パーサーはさまざまな行を解析できます。たとえば、行が /table/ で始まる場合、getParser("table") を呼び出すテーブル パーサーを選択します。ビューを解析したいとき、いくつか問題があります。Eclipseでデバッグして見つけようとしましたが、ソースが見つからず、デバッグ中のアクションのリストにクラスが見つからないという例外が表示されます..しかし、プログラムに例外はありません..

これは、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のデバッグ「ソースが見つかりません」

4

1 に答える 1

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();
    }
}
于 2012-08-03T22:14:04.480 に答える