Java - 如何使 ArrayList 访问不同的类方法?

Posted

技术标签:

【中文标题】Java - 如何使 ArrayList 访问不同的类方法?【英文标题】:Java - How to make an ArrayList access a different class method? 【发布时间】:2021-12-03 05:31:14 【问题描述】:

我是 Java 的初学者,我有点挣扎。我有 3 个类,我希望一个类的 ArrayList 访问另一个类的方法。我该怎么做?

这是我要从中检索方法的方法:

  private void markAsUpdated()
  
    this.needsUpdate = true;
  

这是数组列表:

public int getNumberOfUpdatedSites()
  
    for (int i = 0; i < webSite.size(); i++)
    
      if (webSite.get(i))
      

      
    

两个代码都属于两个不同的类。 我被困在迭代部分。 基本上它需要返回所有已经更新的站点。如果需要,我有一个 UML 图,我可以提供。提前致谢。

【问题讨论】:

webSite的类型是什么?鉴于您如何使用其中的值作为if 语句中的条件,我猜它一定是List&lt;Boolean&gt;markAsUpdated() 是方法而不是类,你想做什么? 其实是 ArrayList 网站; 是我从中获取 markAsUpdated() 方法的类 markAsUpdated() 负责将布尔变量设置为false 这个变量将负责告诉网站是否需要更新 该方法应该对其他类可见,使用访问修饰符public 而不是private,本质上你所做的是标记所有元素,所以if 语句不在这里很有意义。 【参考方案1】:

假设Website类如下:

public class Website 
    private boolean needsUpdate;

    public boolean isNeedsUpdate() 
        return needsUpdate;
    

    public void markAsUpdated() 
        this.needsUpdate = false;
    

然后在你的其他类中,你只需要调用公共的isNeedsUpdate 方法来检查它是否需要更新。这意味着在您的其他课程中,您可以执行以下操作:

public int getNumberOfUpdatedSites() 
    int updatedWebsitesCount = 0;
    for (int i = 0; i < webSite.size(); i++) 
        if (!webSite.get(i).isNeedsUpdate())
            updatedWebsitesCount++;
        
    

    return updatedWebsitesCount;

【讨论】:

以上是关于Java - 如何使 ArrayList 访问不同的类方法?的主要内容,如果未能解决你的问题,请参考以下文章

如何使我的 ArrayList 线程安全? Java中解决问题的另一种方法?

在JAVA中ArrayList如何保证线程安全

ArrayList 包含同一个超类的不同对象 - 如何访问子类的方法

如何在java中的每个arraylist中创建具有不同类型对象的arraylist数组?

jAVA如何使一个数组里面的元素随机交换位置

如何在java中将对象添加到ArrayList中