2

pi のような 1 つの定数を定義したい場合は、 のようにできますpublic static final float pi = 3.14。しかし、変更されるファイルをスキャンした後に生成されるストップワードのリストが必要だとしましょう。「遅延」初期化もできますか? どのようにしますか?

4

2 に答える 2

2

定数を初期化する静的なネストされたクラスを使用できます。

これの利点: この静的なネストされたクラスは、既にラッピング クラスを使用している場合でも、それを使用する場合にのみロードされます。

ネストされたクラスのコンストラクターでストップワードを含むファイルを「スキャン」し、それらをネストされたクラスに含まれる定数変数に割り当てるだけです。

注:一部のファイルをスキャンするような「複雑な」コードを処理する場合、静的初期化子ExceptionInInitializerErrorを 使用するのは嫌いです。 com/javase/1.5.0/docs/api/java/lang/ExceptionInInitializerError.html

于 2013-03-31T15:35:13.523 に答える
2

説明したパターンは、Java 定数変数と一致しません。あなたの定数はデータです。

マップ ( HashMap<String>) を使用して、高頻度単語の値で初期化できます。
次に、ファイル/テキスト/スキャナーから単語を読み取るときに、単語がマップにあるかどうかを確認し、何をすべきかを決定します。

于 2013-03-31T17:55:47.570 に答える