在Java中,boolean不设置为true

时间:2015-06-11 15:50:01

标签: java boolean

这里我试图改变“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),否则它不会改变。

2 个答案:

答案 0 :(得分:1)

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

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

然而,当这些错误得到修复时(我将把它作为练习让你完成!),你的代码就像你期望的那样 - "你好"打印,create procedure testProc (p_param1 in number, p_param2 in number) is begin dbms_output.put_line('params: ' || p_param1 || ' ' || p_param2); end; 肯定设置为true。

答案 1 :(得分:0)

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

插入正确数量的大括号并修复所有拼写错误后,以下代码可以正常工作并打印出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; } }

{