Это известная проблема со службой ...
Даже в этом случае из-за распределенного характера службы может потребоваться 15 минут, прежде чем файлы, сообщения и объекты событий станут доступны для использования этому пользователю через Microsoft Graph API.
blockquote>
Можно использовать обычное acquire; try { use; } finally { release; }
. Кроме того, можно абстрагировать обработку ресурса с Выполнением Вокруг идиомы.
Joshua Bloch предложил добавить механизм под названием Автоматическое управление ресурсами к Java как часть Монеты Проекта (небольшие изменения языка для JDK 7):
Ближайшая альтернатива try/finally
, см. http://java.sun.com/docs/books/tutorial/essential/exceptions/finally.html
Многим кодерам сила идиомы RAII состоит в том, что жизнь базового ресурса связывается с блоком объема, делая вещи более простыми сделать и поддержать; в конечном счете уменьшающие ошибки от отказа выпустить тот ресурс.
К сожалению, Вы не можете подражать этому поведению в Java, поскольку Вы не можете создать свои собственные ограниченные объемом структуры. Язык, подобный Java, который попытался решить эту проблему, является C#:
// explicit release
MyClass obj = MyClass();
obj.UseIt();
obj.Dispose();
// RAII-like (scope-bound) release
using(MyClass obj = new MyClass())
{
obj.UseIt();
}
Возможно, мы будем видеть функциональность как реализованный в будущем.