Java 随机布尔值总是假的
每当我创建一个goblin对象并调用方法isNice时,它总是返回false。但是当我做System.out.println(nice)的时候,它是随机的Java 随机布尔值总是假的,java,Java,每当我创建一个goblin对象并调用方法isNice时,它总是返回false。但是当我做System.out.println(nice)的时候,它是随机的 public class Goblin { private boolean nice; private boolean isNice; public Goblin() { // initialise instance variables Random rand = ne
public class Goblin
{
private boolean nice;
private boolean isNice;
public Goblin()
{
// initialise instance variables
Random rand = new Random();
boolean nice = rand.nextBoolean();
}
public boolean isNice()
{
return true;
else
return false;
}
}
正在声明和分配局部变量。您没有分配字段,因此当您使用getter访问它时,它将始终具有默认值false
首先删除
boolean
,只返回布尔值:isNice(){return isNice;}
,因为您没有将rand.nextBoolean()
的结果赋给nice
,而是赋给局部变量。您设置的是局部变量,而不是类属性。作为解决方案,请尝试this.nice=rand.nextBoolean()
isNice
可以简化为返回nice
。构造函数中的布尔值nice
声明了一个局部变量,该变量隐藏着字段nice
,因此不能在任何地方设置字段的值。请参阅以进一步解释:由于未将nice
赋值为true-nice
将永远不等于true,因此方法isNice()
始终返回false。
boolean nice = rand.nextBoolean();