Это - хороший вопрос.
основная цель проверки (для меня, по крайней мере) состоит в том, чтобы помочь мне зафиксировать ошибки в своей разметке и дать мне хорошую основу, на которой можно создать при тестировании страниц в различных браузерах; если разметка допустима, и страница является borked в IE6, это - проблема IE6.
то, что браузеры должны все все еще вести себя предсказуемым способом, даже если Ваша разметка включает технически недопустимый HTML5, такой как сводка таблицы или ключ доступа привязки, пачкает воды несколько.
Как правило ползунка, я всегда хотел бы, чтобы мои страницы проверили по вышеупомянутой причине. Однако, если бы (например), атрибут был отброшен от спецификации HTML5 без по-видимому подходящей добавляемой замены, то я мог бы быть склонен продолжить использовать или устаревший атрибут устаревший и принимать ошибки проверки.
Как всегда, я думаю, что это - случай знания Вашего ремесла.
, Если Вы знаете то, что Вы делаете, и приняли сознательное решение для создания страницы, которая не проверяет для веских причин, это не проблема. Если Вы - просто написание кода, которое не проверяет, потому что Вы не знаете ничего лучшего, это - другой вопрос полностью.
Stephen
BoundedFIFOBuffer
в коллекциях Apache Commons (что я предполагаю это то, о чем вы говорите) не устарело, он только что переместил пакеты. Исходный файл в org.apache.commons.collections
устарел и вместо этого был перемещен в org.apache.commons.collections.buffer
В Apache commons-collections есть несколько ограниченных коллекций, включая BoundedFifoBuffer .
В той же библиотеке также есть BoundedBuffer и CircularFifoBuffer
Почему бы просто не использовать LinkedBlockingQueue
и использовать неблокирующие методы предложение
(или добавить
) и опрос
, чтобы получить к нему доступ? Вы можете создать его с фиксированной емкостью (т.е. сделать ее ограниченной).
Недавно я использовал Коллекции Google . Я думаю, с ним вы могли бы легко получить решение Java Generics. Существует класс под названием ForwardingList , который, я думаю, вы могли бы довольно легко реализовать эту идею. Очевидно, не так просто, как использовать BoundedFifoBuffer (не общий) или ArrayBlockingQueue.
final ArrayList<MyObject> realList = Lists.newArrayList();
final List<MyObject> list = new ForwardingList<MyObject>() {
protected List<MyObject> delegate() {
return realList;
}
public boolean add(MyObject obj) {
if(delegate().size() > 100) return false;
return delegate().add(obj);
}
};