2014-01-12 37 views
0

嗨我看到了一些與此相關的相關問題,但沒有找到任何解決方案。Java編譯錯誤「類MpsPojo中的方法setSchema不能應用於給定的類型;」

我有一個POJO類定義爲:

MpsPojo.java

public class MpsPojo { 

    private String mfr; 
    private String prod; 
    private String sche; 


    public String getMfr() { 
     return mfr; 
    } 

    public void setMfr(String mfr) { 
     this.mfr = mfr; 
    } 

    public String getProd() { 
     return prod; 
    } 

    public void setProd() { 
     this.prod = prod; 
    } 

    public String getSchema() { 
     return sche; 
    } 

    public void setSchema() { 
     this.sche = sche; 
    } 
} 

我有第二個業務邏輯:: MpsLogic.java

public class MpsLogic { 

public void calculateAssert(MpsPojo mpspojo){ 

     String manufacturer; 
     String product; 
     String schema; 

     manufacturer = mpspojo.getMfr(); 
     product = mpspojo.getProd(); 
     schema = mpspojo.getSchema(); 

     String url = "http://localhost:9120/dashboards/all/list/"+manufacturer+"/"+product+"/"+schema; 
    } 
    } 

而最後一類,測試類是:: FinalLogic.java

public class FinalLogic { 

    MpsPojo mpspojon = new MpsPojo(); 
    MpsLogic mpslogicn = new MpsLogic(); 
    @Test 
    public void firstTest() { 

        mpspojon.setMfr("m1"); 
        mpspojon.setProd("p1"); 
        mpspojon.setSchema("sch1"); 
        mpslogicn.calculateAssert(mpspojon); 
        System.out.println("Printing from Final class"); 
        } 

}

在程序FinalLogic.java,這給我的編譯錯誤錯誤method setSchema in class MpsPojo cannot be applied to given types;

但是,當我發表意見線mpspojon.setProd("p1");mpspojon.setSchema("sch1");然後這工作正常沒有錯誤。

我調試了很多,但dint發現任何線索。任何幫助對我都很有幫助。

感謝

回答

4

添加String參數setProdsetSchema因爲你已經有setMfr完成:

public void setProd(String prod) { 
        ^ ^

public void setSchema(String sche) { 
        ^ ^
+0

非常感謝..我正在使用一些其他Pojo類..所以力量注意到。 – undefined

3

setSchema()接收你的聲明沒有參數。將其更改爲:

public void setSchema(String sche) { 
    this.sche = sche; 
} 

同樣適用於setProd

如果你使用任何IDE,我勸你:

  1. 考慮這樣做你會得到警告(分配this.sche = sche會給在無參數方法的情況下,警告The assignment to variable thing has no effect)。
  2. 自動生成setter/getters,不要自己編寫它們(從而避免任何可能的輸入錯誤)。例如。在Eclipse中,這將是alt + shift + s,然後r
+0

謝謝很多..這解決了這個問題..不幸的是我使用vim編輯器,所以dint注意到了。再次感謝。 – undefined

+0

@JK_Jha然而,你仍然在以某種方式編譯。在這種情況下,Eclipse只是將可視化的標準jdk警告視爲可能。 –

相關問題