• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:非静的 public final フィールドの是非)

非静的public finalフィールドの是非

このQ&Aのポイント
  • c#では非静的なpublic finalフィールドがタブーとされているが、Javaでは存在する。
  • 非静的なフィールドを公開することに疑問がある点は、セキュリティや保守性、統一性、インターフェイスとの関係などが挙げられる。
  • セキュリティや保守性の問題があるかどうか、仕様変更時の影響などを考慮して非静的なpublic finalフィールドを利用するかどうか判断する必要がある。

質問者が選んだベストアンサー

  • ベストアンサー
  • racene
  • ベストアンサー率70% (21/30)
回答No.1

いまいち何を聞きたいのかわかりませんが・・・ 1. については大丈夫です。 final 変数が書き換えられないことはコンパイラが保証しています。 さすがに実行時にクラスファイルを書き換えられた場合とかは知りませんが、普通そんなことは有り得ないので大丈夫でしょう。 2. と 3. と 4. はほぼ同じことを言っていると思うのですが、 あなたの言っているとおり public final フィールドは仕様変更しないような場所で利用するのが望ましいでしょう。 これは Java 言語の残念な点ですね。 この辺については Scala などの新しい JVM 言語では上手く対応している(Scalaでは引数なしのメソッド呼び出しは括弧を省略できる & フィールドアクセスは同名のメソッド呼び出し)ので、興味があったら使ってみると良いと思います。

koumei000
質問者

お礼

まとまりが悪くてすみません。また整理してから質問しようと思います。回答ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • teketon
  • ベストアンサー率65% (141/215)
回答No.2

質問が長なくて、要点を得ません。整理をお願いします。 パっと見た限り、既存の疑問に収まる範囲だと思います。 古典ではありますが、「Java 謎+落とし穴 徹底解明」と言う本は、 「なんかおかしくないか?」という事がよくまとめられていたと記憶しています。 他の言語を触れる目的ならば、Javaはよく似か寄り過ぎなので、 もっと異なるものをターゲットにしたほうが良いです。

koumei000
質問者

お礼

まとまりが悪くてすみません。また整理してから、もう一度質問してみようと思います。回答ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A