java - 使用 toString() 访问隐藏字段是否存在任何问题

标签 java android wifi

我正在尝试创建一个与 SettingsApp 相同的应用程序。为此,我需要与 Wi-Fi 设置相同的网络,例如无法访问互联网或密码不正确。这些信息隐藏在 WiFiConfiguration 中。

但是我发现这些信息可以使用toString()方法读取。

使用 toString() 访问这些内容是否合适?

最佳答案

通常这不是一个好的设计决策。解析 toString() 以提取方法中未公开的信息违反了 encapsulation 的原则。实际上,这可能会变得脆弱,因为后续软件版本通常会更改 toString() 格式。

话虽如此,有时可能根本没有其他办法。例如,如果您必须使用无法以任何方式修改但仍必须使其工作的第三方代码。在这种情况下,您可能需要引入anti-corruption layer到你的设计中。您可能还想尝试使用 reflection .

关于java - 使用 toString() 访问隐藏字段是否存在任何问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53915021/

相关文章:

android - Appium Android Windows : driver. findElement(By.name (""))不能连续工作

iOS - 是美国的用户吗?

lua - 使用 nodeMCU 的 Wifi 网状网络

java - java如何优化?示例代码

android - 使用 Appium 与 Uiautomator 的优势

java - 为 Android SQLite 动态生成创建表查询

android - JellyBean 上的 WiFi-Direct,WPA 请求者搞砸了

java - 如何在java中对多维数组使用foreach或增强for循环?

java - 我可以让 SOAPConnection 永远打开吗?

java - JDK 中 src.zip 文件的正确位置是什么?