Java 是否将实例变量作为参数传递给同一类中的方法?

Java 是否将实例变量作为参数传递给同一类中的方法?,java,pass-by-reference,Java,Pass By Reference,是否可以将实例变量作为参数传递给同一类中的方法 请参阅以下代码: public class Example { private int var1; //instance variable to be changed public Example() { var1 = 0; } public void changeVar() { this.changeVar1(var1); //call method to change

是否可以将实例变量作为参数传递给同一类中的方法

请参阅以下代码:

public class Example 
{

   private int var1;  //instance variable to be changed


   public Example()
   {
       var1 = 0;
   }

   public void changeVar()
   {
       this.changeVar1(var1);  //call method to change from within class
   }

   private void changeVariable(int variable)  //changes passed instance variable
   {
       variable = 2;
   }

}

在本例中使用,这看起来很愚蠢,因为您可以通过第一个方法调用changeVar()轻松更改var1,但我有一个更复杂的程序,其中有多个实例变量(var1、var2、var3、var4…var10)。我正在尝试编写changeVariable()一次,并根据需要更改的内容传递每个实例变量,而不是为每个需要更改的实例变量编写单独的方法,即changeVariable1、changeVariable2。。。changeVariable10.

这不仅仅是愚蠢,它不会起作用。Java中的参数总是按值传递。所以你的
changeVariable
方法实际上只是一个不可操作的。。。它会更改参数的值,但这对
var1
没有影响


如果没有一个更具体的例子,很难知道这是否是一个好主意——我怀疑不是——但你尝试的方式肯定不会奏效;可以更改参数引用的对象的属性,但不能更改参数本身的值。你可能想考虑一种不同的方法,如果这是你的需要,也许是一个可以用名字来引用的地图。
(从技术上讲,您可以将属性的名称作为字符串传递并使用反射,但请不要这样做)。

(不好意思……我对java还是相当陌生!)我正在尝试创建链表,其中每个变量都是对每个列表中第一项的引用。我基本上有10张清单。我还不能提供可靠的代码来显示,因为我还只是在计划阶段。@jcaoile:您真的需要10个单独的列表变量吗?对于一个包含10个列表变量的类来说,这可能不是一个好的设计。也许是一系列的清单?在不了解具体细节的情况下,很难给出更多建议。基本上,我有单独的列表,可以根据特定属性对数据进行排序/分组,该属性在关联实体类中定义(构成每个链接列表的“链接”)。列表是在一个基本上是集合类的类中定义的,这是正确的。在进一步研究了您的答案和下面的Dave之后,我开始认为最直接和最简单的方法是让一个方法更改每个实例变量,或者在本例中,引用每个列表的下一个链接。你同意这是一个明智的方法吗?@jcaoile:这还不是很清楚,但听起来你有几个相同长度的列表。最好有一个实体类型的列表。但我可能误解了。一个完整的例子会很有用。