我遇到了一个简单的问题。我有一个名为"tags"的布尔数组。对我来说,能够通过布尔值访问数组的每个元素非常重要:
public boolean energetic, calming, happy, sad;
public boolean[] trackTags = {energetic, calming, happy, sad};
我向 trackTags 数组传递并分配布尔值(例如 [true, true, true, false])。所以,当我调用 trackTags[0] 时,我得到的是 “true”。但是,当我打印“energetic”时——应该与 trackTags[0] 相同——值总是为 false。我知道布尔值初始化为 false,但是当我将 trackTags 数组中的某些值转换为“true”时,命名元素不应该也跟着改变吗?
第二个问题:有没有一种好的方法让我与布尔变量名称交互?具体来说,如果我传入一个 String[] [happy, sad],然后想仅切换与我的字符串数组中名称对应的布尔值[],这可行吗?我可以轻松地循环遍历两个数组的元素,但显然我无法将字符串与布尔值进行比较。
总的来说,有没有更好的方法来处理布尔名字?我真的很困惑。
EnumSet
? - khelwoodboolean
是Java的一种基本类型。这意味着布尔变量不存储对布尔值的引用,而是存储值本身。当您创建这样的数组时:{energetic, calming, happy, sad}
,您将这四个布尔变量的值复制到数组中,但不包括对它们的引用。因此,它们是不同的。如果您处理的是对象而不是基本类型,则引用将不会丢失,您的代码将正常工作。 - felipeek