2013-05-11 142 views
0

好吧,我需要字符串「H」改變爲「KeyEvent.VK_ +(輸入的字符串H)」由於某種原因,我無法獲得變量從H更改爲主類中的新字符串。儘管如此,它在其他班級確實發生了變化任何幫助都會很棒。發送變量到另一個類的變量來更改Java

主類

Convert ConvertObject = new Convert(); 
String word = "H" 
ConvertObject.Convert(word); 
System.out.println(word); // this keeps printing out H but it needs to print out 
                   "KeyEvent.VK_H" 

Convert類

public static String Convert(String x) { 
    x = "KeyEvent.VK_" + x; 
    System.out.println(x); 
    return x; 
+0

此答案可能會對您有所幫助:http://stackoverflow.com/a/9404727/597657 – 2013-05-11 22:40:04

回答

7

由於Java使用傳值,在該方法的任何修改是爲了僅局部變量。您需要保存方法的結果,以獲得預期的效果:

word = ConvertObject.Convert(word); 
+0

+1如果'String'是可變的並且具有諸如'setVlaue(newString)'等方法,那麼這將起作用;) – 2013-05-11 22:38:06

0

一切都在Java是傳值,這意味着該字符串的副本被傳遞給你的方法,這是改變,而不是原來Main類中的對象。

+0

準確地說:不是將字符串的副本傳遞給該方法,而是將該字符串引用的副本傳遞給該方法。這樣你可以改變方法中的可變對象,並且在方法終止後更改將持續。不過,字符串是不可改變的。 – jlordo 2013-05-11 23:06:29