Я использую класс i, сделанный с именем Key
. Он имеет 2 поля:hashcode для объединения типов в Java
- адрес (тип MyAddress), которые имеют GUID (тип длинный)
- идентификатор (тип длинный)
Этот класс может иметь в любой данный момент одной из следующее:
- адрес не является недействительным и идентификатор == - 1
- адрес; является недействительным и идентификатор> 0
Будет ли правильным сделать следующее:
int hashcode(){
if (address==null) return Long.hashCode(id)
else return Long.hashcode(address.guid)
}
Есть ли какие-либо проблемы, которые могут возникнуть из этого? Я в основном хочу убедиться, что это правильный способ сделать hashcode в этом объединенном классе, когда только одно из полей имеет значение в любой момент времени.
Если классные занятия неизменны, то это прекрасно. –
Что такое функция 'equals'? –
Я верю, что equals будет состоять в том, что если адреса имеют нулевое значение, то сравнивайте их с id и в противном случае сравнивайте с указателем адресов. – slashms