-1
public class ListHelper<E> {
public List<E> list =
Collections.synchronizedList(new ArrayList<E>());
...
public synchronized boolean putIfAbsent(E x) {
boolean absent = !list.contains(x);
if (absent)
list.add(x);
return absent;
}
}
なぜこれが機能しないのかわかりません。なぜロックが間違っていますか?
リストを私用フィールドに変更した場合、このコードは正しくありませんか?
私はあなたが何をしたいのか、何がうまくいかないのかという手がかりはありませんが、あなたは 'Set'を否定しているように見え、' List'を使ってそれを使いたいかもしれません。 – SomeJavaGuy