Аннотация @Contract: как гарантировать, что результат метода будет присвоен?
Например, есть некоторый широко примененный легаси метод, который вычитывает поток в некоторый временный и потом закрывает исходный:
IOUtils.copyLarge(inputStream, tempOutputStream);
Нужно как-то гарантировать, что этот метод будет вызван с присвоением результата. Как то:
InputStream copyOfInputStream = IOUtils.copyLarge(inputStream, tempOutputStream);
А если так, то выдавать какое-то предупреждение:
someObject.someMethod(IOUtils.copyLarge(inputStream, tempOutputStream));
Смотрю аннотацию @Contract от JetBrains, но пока не вижу решения.