【问题标题】:How can I use variables from a for loop from another class?如何使用来自另一个类的 for 循环中的变量?
【发布时间】:2016-11-18 06:30:50
【问题描述】:

在我的代码中,我的 for 循环遍历我的列表类型数组并索引一个整数。

我需要从另一个类中获取所述整数的内容来执行一些代码。

for (row = 0; row < myEntries.size(); row++)

点击我的其他班级的一个按钮将是:

System.out.println(myEntries.get(row).toString());

然后打印出我已经指定的某一行的内容。

由于我的代码在一个 for 循环中,并且我需要从另一个类中获取一行的内容,我该怎么做呢?

感谢您的帮助,如果您需要我解释更多,请询问,我会提供。

【问题讨论】:

  • 您必须扩展该类,以便您可以访问扩展类的数据成员。 @juiceb0xk
  • 嗯,这是一个有趣的概念。但是,我的其他类已经在扩展 JFrame,我找不到同时扩展 JFrame 和其他类的方法。
  • @juiceb0xk 这里的big picture 是什么?您是否希望在 for 循环的中间从另一个类访问 for 循环的索引似乎非常可疑。你希望通过这个实现什么目标?

标签: java class for-loop row


【解决方案1】:

您可以将对象引用直接传递给另一个类,而不仅仅是将整数传递给另一个类。

MyAnotherClass obj = new MyAnotherClass();
for (row = 0; row < myEntries.size(); row++) {
    obj.performSomething(myEntries.get(row));
}

在您的其他类中,您可以直接使用该对象引用,如下所示。

void performSomething(MyEntry myEntry) {
    System.out.println(myEntry.toString());
}

编辑:您可以使用增强的 for 循环重写第一个 for 循环,如下所示。

MyAnotherClass obj = new MyAnotherClass();
for (MyEntry myEntry : myEntries) {
    obj.performSomething(myEntry);
}

【讨论】:

    【解决方案2】:

    您只需要从包含“行”变量的类中创建一个对象,该对象包含在另一个类中。这应该可以完成您的工作:

    class myMainClass {
    
        ArrayList<Integer> myEntries = new ArrayList<Integer>();
    
        public static void main(String[] args) {
            myOtherClass obj = new myOtherClass();
            // Continue doing your stuff here with obj, like calling obj.f()
            //
            System.out.println(myEntries.get(obj.row).toString());
        }
    }
    
    class myOtherClass {
    
        int row;
    
        public void f() {
            for (row = 0; row < myEntries.size(); row++) {
                //Other stuff
            }
        }
    }
    

    【讨论】:

      【解决方案3】:

      假设您的约束是正确的,您可以在第二个类中为您的第一个类创建一个对象,并迭代您的第一个类的数据成员和方法。

      【讨论】:

      • 我对如何实现这一点一无所知,抱歉。我只是对 Java 很陌生。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-07
      • 1970-01-01
      • 2022-12-18
      • 2020-01-06
      • 1970-01-01
      相关资源
      最近更新 更多