奇怪的是,另一半时间它确实有效……我只是不明白为什么会这样。
对于更多上下文,我要做的是实例化 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 应用程序运行器进行测试。