【问题标题】:synchronization on an arrayList java [duplicate]arrayList java上的同步[重复]
【发布时间】:2012-03-02 08:08:43
【问题描述】:

可能重复:
Synchronization of non-final field

我有一个数组列表,当我使用它时:

//declare it as a global ArrayList
private ArrayList <Human> myList = new ArrayList <Human>() ;

//inside a method
synchronized (myList){     
    for(  ListIterator<Human> it = myList.listIterator();it.hasNext();){  
       Human = it.next();

它告诉我在非最终字段上的同步。我该怎么办?

【问题讨论】:

  • 我在互联网上搜索,而不是在 stackoverflow 中。对不起,伙计们。我怎样才能删除这个?
  • 在问题的底部,标签下,应该有一个delete链接。
  • 你的问题的标签下有删除和关闭按钮,使用它

标签: java


【解决方案1】:

您可以在非最终字段上进行同步(本例中为 myList)

你可以使用不带参数的同步块

synchronized{     
    for(  ListIterator<Human> it = myList.listIterator();it.hasNext();){  
       Human = it.next();

或者用“final”属性创建另一个类属性。

PS。你也可以使用 foreach 循环

for(Human h : myList){  
           h.getName();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 2011-09-20
    • 2016-05-08
    • 2021-12-12
    • 2019-12-27
    • 1970-01-01
    相关资源
    最近更新 更多