私の理解では、public
フィールドとfinal
フィールドは事実上読み取り専用フィールドです。したがって、それを公開すると、java.lang.Integer
の不変性には影響しません。java.lang.Integerがプライベート値フィールドを公開しないのはなぜですか?
intValue()
で値にアクセスでき、JITがメソッド呼び出しを開始してインライン化すると、パフォーマンスは問題にならないはずです。しかし、一般に、にはpublic final int value
が含まれていないスレッドの理由などがありますか?
私たちがプライベートであると定義できるとき、それはなぜフィールドの公開を定義しますか?実際にカプセル化に従わなければなりません。 – vahid
フィールドを公開しないようにすることをお勧めします。 –
'String、Byte、Character、Short、Long、Float、Double、そして実際には他のすべてのクラスが自分のプライベートフィールドを公開しないと考えることができるのと同じ理由で。 – EJP