Czytałem ostatnio temat o przedefiniowywaniu metody equals w Javie i natrafiłem na niezrozumiałą dla mnie składnię języka czy ktoś może mi ją wyjaśnić:
@Override
public boolean equals(Object o) {
return instanceof CaseInsensitiveString && ((CaseInsensitiveString)o).s.equalsIgnoreCase(s);
}
Nie rozumiem tego końcowego fragmentu jest tam rzutowanie objektu 'o' na typ CaseInsensitiveString i byłoby porównanie go z objektem 's' wraz z ignorowaniem wielkości znaków ale co robi to dodatkowe '.s' po nawiasie a przed equalsIgnoreCase?