Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将变量发送到另一个类以使该变量更改Java_Java_Class - Fatal编程技术网

将变量发送到另一个类以使该变量更改Java

将变量发送到另一个类以使该变量更改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

好的,我需要将字符串“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 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)
,则该方法可以工作;)这个答案可能会对您有所帮助:确切地说,不是将字符串的副本传递给方法,而是将对该字符串的引用的副本传递给方法。这样,您就可以更改方法中的可变对象,并且这些更改将在方法终止后保持不变。但是字符串是不可变的。