2011-05-29 34 views
1

我在理解私人和公共變量如何工作時遇到問題。 我想填充myThread中的myStorage.outString變量。 但似乎我無法從myThread中看到setInString方法。 這是我的例子:幫我瞭解變量在Java中的工作方式

public class CT63_Console extends MIDlet { 
    public Storage myStorage; 
    public void startApp() { 
     this.myStorage = new Storage(); 
    } 
} 

public class storage{ 
    private String[] outString; 

    public Storage(){ 
     AClass myThread = new AClass(); 
     myThread.start(); 
    } 
    public void setInString(String sendString){ 
     this.outString = sendString; //push seems not to be supported by MIDP 
    } 
} 

public class AClass{ 
    public void run(){ 
     myFunction("write this into Storage var outString"); 
    } 

    private myFunction(myString){ 
     myStorage.setInString(myString); 
    } 
} 

什麼我必須做的設置變量,爲什麼我錯了嗎?

+0

outString是一個字符串數組(String []),而sendString只是一個字符串變量。 – 2011-05-29 20:05:04

+0

發佈編譯器錯誤。其他評論是正確的,但聽起來你可能會提出其他建議。 – Chris 2011-05-29 20:09:30

+0

公共類存儲是一個小的s而存儲在CT63_Console是一個大的錯字或您的實際錯誤? – 2011-05-29 20:14:58

回答

1

您正在嘗試訪問myStorage而未提及它。 您可以在創建AClass實例時傳遞此引用。

另外,您正試圖將字符串分配給無法完成的字符串數組。

public class Storage{ 
    private String outString; 

    public Storage(){ 
     AClass myThread = new AClass(this); 
     myThread.start(); 
    } 
    public void setInString(String sendString){ 
     this.outString = sendString; //push seems not to be supported by MIDP 
    } 
} 

public class AClass { 
    Storage myStorage; 

    public AClass(Storage s) { 
     this.myStorage = s; 
    } 

    public void run(){ 
     myFunction("write this into Storage var outString"); 
    } 

    private myFunction(String myString) { 
     myStorage.setInString(myString); 
    } 
} 
+0

將在接下來的兩個小時內進行測試,並讓您知道這是否是我缺少的鏈接;) – TDH 2011-05-29 20:23:14

+0

完美:但有一個關於此問題的問題: ':'我如何填寫字符串一個數組),在MIDP中有附加值?你會建議使用什麼(我想從課程外部添加新的值,並從課程內部一個接一個地刪除(先刪除olderst)。我想使用一種eventlistener。如果新值添加到outString,使用它,如果它成功發送刪除它。 – TDH 2011-05-29 21:37:48

0
this.outString = sendString; 

outString是字符串(String[])的陣列。您不能將單個字符串分配給一個字符串數組。因此,無論您需要將該變量的類型更改爲單個字符串(僅String),還是需要指定將該字符串分配給的索引。請注意,在後一種情況下,您需要首先初始化數組。

+0

權利:但我的問題是關於這個:我如何填寫字符串(作爲一個數組),在MIDP中有額外的價值?你會建議使用什麼(I想從類的外部添加新的值,並從類內部刪除一個又一個(先刪除olderst)。我想使用一種eventlistener。如果一個新的值添加到outString,使用它,如果它已成功發送刪除它 – TDH 2011-05-29 21:49:46