我正在探索在equals方法内部遇到的Java中的String API
首先,
if (anObject instanceof String) {
String anotherString = (String)anObject;
Run Code Online (Sandbox Code Playgroud)
即使在检查instanceOf String是否存在已在该条件内进行类型转换的对象之后,也请您帮我理解一下。
其次,
String anotherString = (String)anObject;
int n = value.length;
if (n == anotherString.value.length)
Run Code Online (Sandbox Code Playgroud)
这是为什么我们anotherString.value.length不使用anotherString.length
我试着像多个来源JLS,Herbert Schildt图书,但无法真正解密此。请帮助我更好地理解这一点。
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = value.length;
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = …Run Code Online (Sandbox Code Playgroud)