【发布时间】:2013-04-08 18:11:35
【问题描述】:
我正在开发一个使用ScanResult 对象的Android 应用程序。该对象的形式为:
[SSID: __mynetwork__, BSSID: 00:0e:2e:ae:4e:85, capabilities: [WPA-PSK-TKIP][ESS], level: -69, frequency: 2457, timestamp: 117455824743]
如何仅覆盖 equals() 方法而不创建扩展它的客户类以便仅比较 SSID、BSSID、capabilties、level 和 frequency 属性?换句话说,在equals 方法中我想消除timestamp 属性,这样当我比较这两个对象时,equals() 方法将返回一个true 值:
[SSID: __mynetwork__, BSSID: 00:0e:2e:ae:4e:85, capabilities: [WPA-PSK-TKIP][ESS], level: -69, frequency: 2457, timestamp: 117455824743]
[SSID: __mynetwork__, BSSID: 00:0e:2e:ae:4e:85, capabilities: [WPA-PSK-TKIP][ESS], level: -69, frequency: 2457, timestamp: 117460312231]
注意:当我派生一个扩展 ScanResult 的客户类时,我在尝试实现构造函数时收到以下错误:The constructor ScanResult() is not visible
【问题讨论】:
-
覆盖它并且不提供时间戳检查,只需将其省略即可。
-
我应该创建一个扩展equals方法的自定义类吗?
-
问题是我是否可以只覆盖该方法而不创建扩展它的新类
-
不,你不能那样做
-
你对需要 equals() 覆盖的对象做了什么?
标签: java android overriding equals