guava: лучшие практики с ImmutableList.of (E [])

Я только что заметил, что ImmutableList.of (E []) устарел в пользу ImmutableList.copyOf () по той очевидной причине, что список может на самом деле нельзя сделать неизменяемым, если необработанный массив используется где-то еще.

Что делать, если у вас есть метод, который возвращает массив, и вы точно знаете, что этот метод не удерживает ссылку на массив, а ваш код не удерживает ссылку на массив, кроме передачи ее в ImmutableList.of () ?

Должен ли я ...

  • продолжать использовать ImmutableList.of (E []) (кажется плохой идеей, поскольку метод исчезнет)
  • используйте Collections.unmodifiableList (Arrays.asList ())
  • используйте ImmutableList.copyOf () - это кажется лучшей идеей, когда проблем с производительностью / ресурсами не возникает, иначе копия не нужна.

9
задан ColinD 21 July 2011 в 15:33
поделиться