【问题标题】:ArrayList to Access Methods in ClassesArrayList 访问类中的方法
【发布时间】:2013-04-19 11:06:36
【问题描述】:

是否可以创建一个包含类的新实例的 ArrayList,然后使用该 ArrayList 访问给定类中的方法?这是一个更清楚的例子:

ArrayList<myOtherClassName> myClassObjects= new ArrayList<myOtherClassName>();
myClassObjects.add(new myOtherClassName());
myClassObjects.indexOf(1).methodInOtherClass();

但是,这不起作用! 有没有办法实现我想要的?

【问题讨论】:

  • 你不应该使用class作为标识符,它是Java中的保留字。我正在将其修改为 myClassObjects。

标签: java class arraylist


【解决方案1】:

用途:

ArrayList<myOtherClassName> class1 = new ArrayList<myOtherClassName>();
class1.add(new myOtherClassName());
class1.get(0).methodInOtherClass();

你需要:

  • 调用 .get() 方法而不是 .indexof()

indexof 方法返回索引,而不是列表中的值/对象。

另外,总是写

List<myOtherClassName> class1 = new ArrayList<myOtherClassName>();

而不是

ArrayList<myOtherClassName> class1 = new ArrayList<myOtherClassName>();

ArrayList 是 List 的实现,你应该总是创建接口类型的对象而不是实现类。

【讨论】:

    【解决方案2】:

    不要使用类作为变量。

    indexOf() 将返回一个整数。请改用get()

    ArrayList<myOtherClassName> mylist = new ArrayList<myOtherClassName>();
    mylist.add(new myOtherClassName());
    mylist.get(0).methodInOtherClass();
    

    【讨论】:

      【解决方案3】:

      @Oliver-R...

      Try Below Code 
      
      ArrayList<myOtherClassName> myClassObject = new ArrayList<myOtherClassName>();
      myClassObject.add(new myOtherClassName());
      myClassObject.get(0).methodInOtherClass();
      
      the method methodInOtherClass() return type is void it will not return any thing other
      

      【讨论】:

      • 你怎么知道“方法 methodInOtherClass() 返回类型是 void 它不会返回任何其他东西”:)。这是他的课程和方法。
      • 你调用了那个类方法,所以你知道那个方法的返回类型是什么
      • 但是,您将 int 或 void 作为返回类型的方法在哪里?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-16
      • 2021-12-03
      • 2017-09-26
      • 2012-11-19
      • 1970-01-01
      相关资源
      最近更新 更多