Java を使用して単純なスプレッドシートを実装しようとしています。コンソールのいくつかのメニューを介してユーザーとやり取りし、ユーザーは、作成するスプレッドシートに関する事前に作成された情報 (行、列、およびセルの内容) を含む特定のファイルをインポートできます。私はパーサーと呼ばれる静的クラスを作成しようとしています。このクラスの目標は、インポートの各行を細かく分割して、正しいメソッドをそれらに適用できるようにすることです (コンテンツが表示されているセルを読み取ります)。追加しようとしているコンテンツの種類)。
必要なたびに新しいオブジェクトをインスタンス化する必要なく使用したいので、パーサーを静的にしました (これは正しいですか?)。ただし、問題を引き起こしている特定の方法があります。このような入力を受け取るたびに1;1|=2;3
、セル 1;1 がセル 2;3 を参照していることを意味します。パーサーに新しい参照 (getCell(i,j)) を返すように指示しています。これは、Reference クラスのコンストラクターが Cell を受け取るためですが、もちろん Java コンパイラーは、非静的メソッド (getCell の場合) をその静的クラス内で使用できないことを通知します。
だから私の質問は: この問題を克服する方法はありますか? 静的クラスで非静的メソッドを使用する方法はありますか?それとも、インポート ファイルを読み取ろうとするときに新しい Parser オブジェクトをインスタンス化する必要がありますか?