2014-03-29 132 views
0

我在寫一個將構建SQL表創建語句的類。我想要做的就是調用類似createTable(String tableName ColAndTypes... ct)的方法。當我編寫該方法時,我沒有收到任何編譯錯誤。當我調用它時,我無法將值傳遞給方法,我認爲這是因爲我的語法錯了,我不知道如何解決它。我想知道你是否可以看看我提供的例子,並讓我知道我需要做些什麼來解決它。非常感謝你的幫助!使用構造函數作爲方法參數

import java.util.*; 
public class foo 
{ 
public class bar{ 
    public String sBar1, sBar2; 
    public bar(){ 
     sBar1 = "null"; 
     sBar2 = "null"; 
    } 
    public bar(String sBar1, String sBar2){ 
    this.sBar1 = sBar1; 
    this.sBar2 = sBar2; 
    } 
} 

String sFoo; 
List<bar> bi; 

public foo(){ 
    sFoo = "null"; 
    bi = new bar(); 
} 
public foo(Strinf sFoo, bar bi){ 
    this.sFoo = sFoo; 
    this.bi = bi; 
} 

public void runFooBar(String sFoo, bar... barArgs) 
{ 
    this.sFoo = sFoo; 
    for(bar x:barArgs){System.out.Println(bi.get(x).sBar1 + ":" + bi.get(x).sBar2);} 
} 

public static void main(String[] args) 
{ 
    foo fi = new foo(); 
    fi.runFooBar("foo 1", ("1 sBar1","1 sBar2"),("2 sBar1 ","2 sBar2")) 

}//end main 

}//end class 
+0

'bi'是一個'List',但您正在將它初始化爲'bar'。你有一個錯字'Strinf'而不是'String'。 'List#get(int)'需要一個'int',但是你傳給它一個'bar'。 –

+0

請遵守Java命名約定。類應該在'PascalCase'中,所以'Bar'而不是'bar'。要回答你的具體問題,你不需要。除非您使用Java 8,否則我們不會這樣做。要解決當前的問題,請在您的(重命名的)Bar類的_instances_中傳遞。 –

+0

我看到我確實有一些錯別字,謝謝你的反饋 – demuro1

回答

1

我不完全確定你要做什麼,但是這會修復你的語法錯誤。

import java.util.ArrayList; 
import java.util.List; 

public class Foo { 
    public static class Bar { 
     public String sBar1, sBar2; 

     public Bar(String sBar1, String sBar2) { 
      this.sBar1 = sBar1; 
      this.sBar2 = sBar2; 
     } 
    } 

    String sFoo; 
    List<Bar> bi; 

    public Foo() { 
     bi = new ArrayList<>(); 
    } 

    public Foo(String sFoo, List<Bar> bi) { 
     this.sFoo = sFoo; 
     this.bi = bi; 
    } 

    public final void runFooBar(String sFoo, Bar... barArgs) { 
     this.sFoo = sFoo; 
     for (Bar x : barArgs) { 
      System.out.println(x.sBar1 + ":" + x.sBar2); 
     } 
    } 

    public static void main(String[] args) { 
     Foo fi = new Foo(); 
     fi.runFooBar("foo 1", new Bar("1 sBar1", "1 sBar2"), new Bar("2 sBar1", "2 sBar2")); 

    }//end main 
}//end class 
+0

謝謝,我真的很感謝你的幫助。看着你的更正,我可以看到我犯了什麼錯誤! – demuro1

+0

我很高興能幫助你。 – Arrem

相關問題