2015-02-18 4 views
4

Я использовал Optional от Guava в моем проекте в течение очень долгого времени. Теперь я решил перейти с Java 7 на Java 8, но так как во всем моем проекте я использовал guavaOptional, я должен пропустить код и внести существенные изменения. Хотя я еще не уверен, стоит ли меняться, или лучше оставить все как есть, и просто начать использовать Java Optional.Дополнительно vs Guava Необязательный

Есть ли какие-либо преимущества или утечки в Java Optional, это лучше, чем у нас в guava?

Спасибо за ответы и помощь.

+0

IMHO, Java 8's Дополнительно является адаптацией Guava's Optional. Тем не менее, может быть, регулярное выражение может заменить весь ваш импорт. –

ответ

4

API обоих классов не совпадает. Я бы не изменил это по регулярному выражению. Три отличия, которые важны, по моему мнению:

  1. Необязательный в Гуаве - абстрактный, что означает, что объекты являются подклассами. В Java Необязательный является окончательным, что означает, что нет подкласс.
  2. В guava Необязательный является Serializable. в Java Дополнительно не является Serializable.
  3. Методы не совсем то же самое.
+1

Guavas Дополнительно является абстрактным, но не позволяет внешним пакетам подклассифицировать его. –