gpt4 book ai didi

java - 使用反射更改 boolean 字符串值不起作用

转载 作者:搜寻专家 更新时间:2023-11-01 03:57:29 25 4
gpt4 key购买 nike

我正在试验 Java 反射和内联字符串,得出的结果让我感到困惑。

import java.lang.reflect.Field;

public class HappyDebugging {

public static void main(String[] args) throws Exception {
defineTrueFalse();

System.out.println("true is " + true); // why is it "true is true"?
System.out.println("false is " + false);
System.out.println(true);
System.out.println(false);
System.out.println("true");
System.out.println("false");
System.out.println("true is " + Boolean.valueOf(true));
System.out.println("false is " + Boolean.valueOf(false));
System.out.println("true is " + Boolean.valueOf("true"));
System.out.println("false is " + Boolean.valueOf("false"));
}

static void defineTrueFalse() throws Exception{
Field field = String.class.getDeclaredField("value");
field.setAccessible(true);
field.set("true", new char[] {'f', 'a', 'l', 's', 'e'});
field.set("false", new char[] {'t', 'r', 'u', 'e'});

field = String.class.getDeclaredField("offset");
field.setAccessible(true);
field.setInt("true", 0);
field.setInt("false", 0);

field = String.class.getDeclaredField("count");
field.setAccessible(true);
field.setInt("true", 5);
field.setInt("false", 4);
}
}

为什么输出的前两行是

true is true
false is false

我希望他们是

true is false
false is true

请注意不同平台的输出不同。

最佳答案

这似乎有效....

String.valueOf(BooleanValue)

关于java - 使用反射更改 boolean 字符串值不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8728820/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com