将变量发送到另一个类以使该变量更改Java
好的,我需要将字符串“H”更改为“KeyEvent.VK_+(输入的字符串H)”,由于某种原因,我无法将变量从H更改为主类中的新字符串。不过,在另一个班级,情况确实发生了变化。任何帮助都会很好 主类将变量发送到另一个类以使该变量更改Java,java,class,Java,Class,好的,我需要将字符串“H”更改为“KeyEvent.VK_+(输入的字符串H)”,由于某种原因,我无法将变量从H更改为主类中的新字符串。不过,在另一个班级,情况确实发生了变化。任何帮助都会很好 主类 Convert ConvertObject = new Convert(); String word = "H" ConvertObject.Convert(word); System.out.println(word); // this keeps printing out H but it ne
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"
转换类
public static String Convert(String x) {
x = "KeyEvent.VK_" + x;
System.out.println(x);
return x;
由于Java使用传递值,因此方法中的任何修改都只对局部变量进行。您需要保存方法的结果以获得所需的效果:
word = ConvertObject.Convert(word);
Java中的所有内容都是按值传递的,这意味着字符串的一个副本被传递给您的方法,并且该副本被更改,而不是主类中的原始对象。+1如果
String
是可变的,并且具有方法,例如setvlue(newString)
,则该方法可以工作;)这个答案可能会对您有所帮助:确切地说,不是将字符串的副本传递给方法,而是将对该字符串的引用的副本传递给方法。这样,您就可以更改方法中的可变对象,并且这些更改将在方法终止后保持不变。但是字符串是不可变的。