簡體   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