我正在尝试使用 Java 实现一个简单的电子表格。它通过控制台上的一些菜单与用户交互,用户可以导入给定文件,其中包含一些关于要创建的电子表格的预制信息(行、列和单元格的内容)。我正在尝试创建一个名为 Parser 的静态类,该类的目标是将导入的每一行分解为小块,以便我可以对它们应用正确的方法(读取内容所在的单元格添加,以及我要添加什么类型的内容)。
我将 Parser 设为静态,因为我想使用它而不需要在每次需要时都实例化一个新对象(这是正确的吗?)。不过,我有一个给我带来麻烦的特定方法。每当我收到这样的输入时:1;1|=2;3
这意味着我的单元格 1;1 引用了单元格 2;3。我告诉解析器返回一个新的参考(getCell(i,j))。这是因为我的 Reference 类构造函数接收到一个 Cell,但当然 java 编译器告诉我我不能在该静态类中使用非静态方法,getCell 就是这种情况。
所以我的问题是:有没有办法克服这个问题?有什么方法可以在静态类中使用非静态方法,还是在尝试读取导入文件时实例化一个新的 Parser 对象?