2012-11-14 46 views
0

在我的android應用程序中,我有兩個類,比如說X和YI有另一個類Z,並且在那個類中有一個靜態函數'print'。這個函數應該從類X和Y中調用,並且我想通過X和Y的類名作爲參數傳遞給函數「打印」當我打電話打印功能從兩個classes.What我曾嘗試是,如何將類名作爲參數傳遞給android中的函數?

public class X 
{ 
    public static String os="Android"; 
    String classname="X"; 
    Z.print(classname); 
} 

public class Y 
    { 
    public static String os="IOS"; 
    String classname="Y"; 
    Z.print(classname); 
    } 

public class Z 
    { 

    public static void print(String classname) 

     { 

     System.out.println(classname.os); 

     } 
    } 

但是Eclipse拋出一個錯誤「OS不能得到解決,或者不是字段「。我知道我用於傳遞類名稱的方法是錯誤的。可以任何人指導我解決這個問題嗎?...提前致謝......

+0

請將您的整個代碼,你的代碼不編譯 –

+2

@zaske,我認爲編譯錯誤是問題的關鍵。 – Wyzard

回答

0

在你的print方法中,classname參數是一個普通的Java字符串。它沒有一個名爲os的字段。

如果你想既類名和操作系統名稱傳遞給print方法,你需要做print採取兩個字符串參數:

public static void print(String classname, String os) 
{ 
    System.out.println(classname + ", " + os); 
} 

,並通過這兩個值調用它的時候:

Z.print(classname, os); 

你其他錯誤是你XY類有代碼的方法,這是不允許的外面。

+0

我已經嘗試過這種方法...但仍然eclipse檢測不到字符串'os' –

+0

然後,您需要發佈修改後的代碼和您得到的錯誤消息。您發佈的代碼已經有多個語法錯誤,您需要在編譯器接受它之前修復所有這些錯誤。 – Wyzard

2

您可以調用getName方法的類。

YourClass.class.getName(); 

你的情況,當你調用ž類的印刷方法,這樣調用:

Z.print(Y.class.getName()); 
0

你爲什麼不直接傳遞OS作爲參數?

class X 
{ 
    public static String os="Android"; 
    String classname="X"; 
    void print() 
    { 
    Z.print(os); 
} 
} 

class Y 
    { 
    public static String os="IOS"; 
    String classname="Y"; 
    void print() 
{ 
    Z.print(os); 
} 
} 

class Z 
    { 

public static void print(String x) 

    { 

    System.out.println(x); 

    } 

} 
0

Z.print()移動到方法體中。

相關問題