Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 随机布尔值总是假的_Java - Fatal编程技术网

Java 随机布尔值总是假的

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

每当我创建一个goblin对象并调用方法isNice时,它总是返回false。但是当我做System.out.println(nice)的时候,它是随机的

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();