哪个变量是 equals 函数 camparing Character sets?
Which variable is the equals function camparing Character sets to?
我试图破译为 RTF 文本提取器编写的代码。我找到了一个包含 if
语句的函数,该语句将某些内容与带有控制字的字符集进行比较,例如 ansi
pc
mac
。就像:
private void processControlWord() {
if (inHeader) {
if (equals("ansi")) {
globalCharset = WINDOWS_1252;
} else if (equals("pca")) {
globalCharset = CP850;
} else if (equals("pc")) {
globalCharset = CP437;
} else if (equals("mac")) {
globalCharset = MAC_ROMAN;
}
等等...
将这些字符集与什么进行比较的 equals
函数是什么?我看过 somestring.equals(someothersting)
但它在这里如何运作?
看看equals方法是如何被java默认实现的
static public boolean areEqual(boolean aThis, boolean aThat){
//System.out.println("boolean");
return aThis == aThat;
}
所以,根据那个
a.equals(b) 已返回 true,表示满足条件 a==b
但在您的情况下,它只采用一个参数,这意味着,在您的代码中某处 equals 方法已被重载。
请参考这个link:
enter link description here
在不引用对象的情况下调用方法是 shorthand 在 this
上调用它。所以这段代码可以读作:
private void processControlWord() {
if (inHeader) {
if (this.equals("ansi")) { // E.g., here
globalCharset = WINDOWS_1252;
} else if (this.equals("pca")) {
globalCharset = CP850;
} else if (this.equals("pc")) {
globalCharset = CP437;
} else if (this.equals("mac")) {
globalCharset = MAC_ROMAN;
}
}
}
它只是一个用户定义的函数,它覆盖了 java 的 equals
函数的行为。
我认为使用与预定义函数相同的名称来命名函数不是一个好习惯。像我这样的人在维护时浪费了很多时间来理解代码。
我试图破译为 RTF 文本提取器编写的代码。我找到了一个包含 if
语句的函数,该语句将某些内容与带有控制字的字符集进行比较,例如 ansi
pc
mac
。就像:
private void processControlWord() {
if (inHeader) {
if (equals("ansi")) {
globalCharset = WINDOWS_1252;
} else if (equals("pca")) {
globalCharset = CP850;
} else if (equals("pc")) {
globalCharset = CP437;
} else if (equals("mac")) {
globalCharset = MAC_ROMAN;
}
等等...
将这些字符集与什么进行比较的 equals
函数是什么?我看过 somestring.equals(someothersting)
但它在这里如何运作?
看看equals方法是如何被java默认实现的
static public boolean areEqual(boolean aThis, boolean aThat){
//System.out.println("boolean");
return aThis == aThat;
}
所以,根据那个 a.equals(b) 已返回 true,表示满足条件 a==b
但在您的情况下,它只采用一个参数,这意味着,在您的代码中某处 equals 方法已被重载。 请参考这个link: enter link description here
在不引用对象的情况下调用方法是 shorthand 在 this
上调用它。所以这段代码可以读作:
private void processControlWord() {
if (inHeader) {
if (this.equals("ansi")) { // E.g., here
globalCharset = WINDOWS_1252;
} else if (this.equals("pca")) {
globalCharset = CP850;
} else if (this.equals("pc")) {
globalCharset = CP437;
} else if (this.equals("mac")) {
globalCharset = MAC_ROMAN;
}
}
}
它只是一个用户定义的函数,它覆盖了 java 的 equals
函数的行为。
我认为使用与预定义函数相同的名称来命名函数不是一个好习惯。像我这样的人在维护时浪费了很多时间来理解代码。