1

奇怪的是,另一半时间它确实有效……我只是不明白为什么会这样。

对于更多上下文,我要做的是实例化 Indexer 类的对象,定义如下:

public class Indexer {

private String name;
private List<String> allTerms = new ArrayList<String>();
private List<String> filePaths = new ArrayList<String>();
private List<double[]> fileVectors = new ArrayList<double[]>();
/* and the propper setters and getters*/

这是从 .json 文件加载的实例。

public Indexer loadIndex(String indexPath) {
    try {
        String jsonString = new FatherFileReader().getFileContent(indexPath);
        Gson gson = new GsonBuilder().create();
        JsonElement root = new JsonParser().parse(jsonString);
        Indexer indexer = gson.fromJson(root, Indexer.class);
        System.out.println(indexer.getName());
        return indexer;

    } catch(Exception e){
        e.printStackTrace();
    }
    return null;

当我执行它时,它会从索引器对象中打印属性名称,但我第二次尝试时,控制台旁边会出现一个名称为 SignatureParser.class 的选项卡,并显示以下消息。第三次我尝试......它再次工作!依此类推...此外,它不会落在 catch 块上,因此它不会打印 StackTrace 并且程序只是停止并弹出选项卡。

找不到类文件编辑器源 源附件不包含文件 SignaturesParser.class 的源。您可以通过单击下面的更改附件源来更改源附件。

我不知道发生了什么...我会非常感谢您的帮助。


编辑

我已经通过将它作为 Java 应用程序运行而不是使用 Eclipse 调试器运行它来使其始终如一地工作......我仍然很想知道发生了什么。但是现在我要使用 java 应用程序运行器进行测试。

4

0 回答 0