繁体   English   中英

布尔值在 Java 中未设置为 true

[英]boolean doesn't set to true in Java

我正在尝试更改不起作用的“stat”的状态

    public class controller {

        public static void main(String args[]){{

            final AjaxR re = new AjaxR();
            re.setMal("qw");
            if (re.getMal() != null) {
                re.setStat(true);
            }

            if(re.isStat()){
              System.out.println("Hello");
        }
    }



public class AjaxR {

    boolean stat;
    String mal;

    public boolean isStat() {
        return stat;
    }

    public void setStat(final boolean stat) {
        this.stat = stat;
    }

    public String getmal() {
        return mal;
    }

    public void setMal(final String mal) {
        this.mal = mal;

    }

这里re.stat没有设置为 true。 除非我在调试模式下手动强制执行re.setStat(true) ,否则它不会改变。

您的代码存在多个语法问题:

  • 两个开头{在您的主要方法标题之后;
  • getMal()是错误的情况,它与您在AjaxR中的方法getmal()不匹配;
  • 您的controller类没有右括号;
  • AjaxR也没有AjaxR大括号。

但是,当这些错误被修复后(我将把它作为练习留给您完成!),您的代码会按照您的预期运行 - 打印“Hello”并且stat绝对设置为 true。

我将您的代码复制到 eclipse 中,并且能够轻松找到您的其余错误。 您没有正确数量的getmal()括号和getmal()括号,而且您将方法命名为getmal()而不是getMal() 如果您使用合适的 IDE,可以轻松检测到所有这些拼写错误和错误。

插入正确数量的大括号并修复所有错别字后,以下代码有效并打印出Hello

public class controller {

    public static void main(String args[]){

        final AjaxR re = new AjaxR();
        re.setMal("qw");
        if (re.getMal() != null) {
            re.setStat(true);
        }

        if(re.isStat()){
            System.out.println("Hello");
        }
    }
}



public class AjaxR {

    boolean stat;
    String mal;

    public boolean isStat() {
        return stat;
    }

    public void setStat(final boolean stat) {
        this.stat = stat;
    }

    public String getMal() {
        return mal;
    }

    public void setMal(final String mal) {
        this.mal = mal;
    }
} 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM