外部類可更改非最終公共靜態字段。
通常情況下,您不會希望為外部類提供對象成員字段的直接訪問路徑,因為任意外部類都可以更改公共字段。面向對象的良好設計使用 Encapsulation 來防止將實現詳細信息(例如成員字段)暴露給其他類。此外,如果系統假定此字段不可更改,則惡意代碼可能能夠逆向更改系統的行為。
'
例 1:在下列代碼中,字段 ERROR_CODE 已聲明為公共、靜態和非最終。
public class MyClass
{
public static int ERROR_CODE = 100;
//...
}
[1] Standards Mapping - Common Weakness Enumeration - (CWE) CWE ID 493
[2] Sun Microsystems, Inc. Secure Coding Guidelines for the Java Programming Language, version 2.0