我正在尝试创建一个与 SettingsApp 相同的应用程序。为此,我需要与 Wi-Fi 设置相同的网络,例如无法访问互联网或密码不正确。这些信息隐藏在 WiFiConfiguration 中。
但是我发现这些信息可以使用toString()
方法读取。
使用 toString()
访问这些内容是否合适?
最佳答案
通常这不是一个好的设计决策。解析 toString()
以提取方法中未公开的信息违反了 encapsulation 的原则。实际上,这可能会变得脆弱,因为后续软件版本通常会更改 toString()
格式。
话虽如此,有时可能根本没有其他办法。例如,如果您必须使用无法以任何方式修改但仍必须使其工作的第三方代码。在这种情况下,您可能需要引入anti-corruption layer到你的设计中。您可能还想尝试使用 reflection .
关于java - 使用 toString() 访问隐藏字段是否存在任何问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53915021/