私は、このリンクを介してOBJ10-J. Do not use public static nonfinal fieldsをつもりですし、それは、そのようなフィールドへのアクセス はセキュリティマネージャによって確認されていないので、セキュリティの観点から、非最終公開のパブリックインスタンスフィールドと最終的でないパブリックインスタンスフィールドの違いは?
クライアントコードは自明パブリック静的フィールドにアクセスすることができ、と言います。
実際にはどういう意味ですか?つまり、セキュリティマネージャから逃れることによって何を意味するのでしょうか?
フィールドが非最終とpublic
ているので、彼らは単にそれを意味している場合、どのように非最終来る、public
インスタンスは、そのstatic
対応よりも異なるフィールド?
私はこの質問をしてきたと、セキュリティの面で一切の言及を見ていない、Why are static variables considered evil
public
クラスのpublic static
フィールドはとてもpublic
インスタンスフィールドあまりにもどこからでもアクセス可能となり(限り、コードのセキュリティを懸念しています) 、違いはどこですか?理由不確定public
インスタンスのフィールドにセキュリティの問題はありませんが、static
は?非静的フィールドの場合は、既にOBJ01-J. Limit accessibility of fields
public
インスタンスフィールドによって覆われているため
反射方法を使用する可能性がありますか?私が理解していることは、 'public'フィールドはどこからでもアクセスできるように意図されており、** refelction **などを無効にすることは影響を与えないか、セキュリティマネージャにこれらのアクセスを含める方法がないことです。 –
@SabirKhanはい、正しいですが、PublicフィールドはSecurityManagerで制御できません。通常はアクセスできない非公開フィールドにはリフレクションでアクセスできますが、SecurityManagerを使用してリフレクションによるアクセスを無効にしたり、アクセスを制御することができます。 –