Guava 19.0, Library Java Besutan Google

Yana Permana 16 Desember 2015

Guava 19.0, Library Java Besutan Google

Guava merupakan salah satu proyek Google dalam menyediakan beberapa library Java inti. Library ini telah digunakan dalam banyak proyek berbasis Java milik Google. Guava menyuguhkan berbagai fitur seperti collections, caching, primitive support, concurrency, common, string processing, I/0 dan masih banyak lagi.

Guava sampai saat ini sudah menginjak versi yang ke-19. Pada tanggal 9 desember 2015 kemarin, Google telah merilisnya. Banyak penambahan dan perubahan fitur terbaru pada Guava 19, apa saja? Ini dia.

common.base

  • Penambahan CharMatcher static factory methods yang sama dengan konstan CharMatcher. Contoh, penambahan CharMatcher.whitespace() yang sama dengan CharMatcher.WHITESPACE. Dengan adanya fungsi tersebut, konstan tersebut akan dianggap usang dan dihapus pada rilis Guava mendatang
    • Mengapa demikian? Hal ini disebabkan karena penggunaan konstan dalam classes membutuhkan integer yang besar yang bisa membuat proses lambat
  • Penambahan Throwables.lazyStackTrace(Throwable) yang berguna mengembalikan List<StackTraceElement>, fungsi ini bisa juga untuk memuat elemen stack trace. Sangan efisien, jika kita menginginkan elemen pertama dari stack trace tersebut
  • Penambahan lazyStackTraceIsLazy() yang mengembalikan nilai boolean apakah mampu digunakan sebagai implementasi spesial dalam platform yang digunakan atau tidak
  • Penambahan VerifyException untuk konstruktor dan bersifat Throwable
common.cache

Sebenarnya package ini masih beta, dan mula dicoba dalam library ini untuk menguji kestabilannya.

  • Penambahan visibilitas untuk CacheLoader.UnsupportedLoadingOperationException
  • Penambahan RemovalNotification.create. Perlu dicatat, fungsi ini hanya akan bekerja jika dibuat untuk implementasi khusus saja.
common.collect
  • Penambahan factory dan builder methods untuk varian ImmutableMaps dan ImmutableMultimaps yang digunakan untuk iterasi <Map.Entry>
  • Penambahan FluentIterable.toMultiset()
  • Penambahan RangeSet.asDescendingSetOfRanges() dan RangeMap.asDescendingMapOfRanges()
  • Penambahan Lists.cartesianProduct(List...) dan Lists.cartesianProduct(List<List>>)
  • Penambahan Maps.newLinkedHashMapWithExpectedSize(int)
  • Penambahan kembali Multisets.removeOccurrences(Multiset, Multiset) dimana fitur ini dilewatkan dan digantikan Multisets.removeOccurences(Multiset, Iterable) pada Guava 18.0
  • MapConstraint dan MapConstraints sudah dianggap usang
  • Penambahan Sets.newSetFromMap(Map) untuk Java 6
common.eventbus
  • Penambahan EventBus.identifier()
  • Penghapusan protected method AsyncEventBus.dispatchQueuedEvents() (made package-private)
common.io
  • Penambahan ByteSource.sizeIfKnown()
  • Penambahan CharSource.length()
  • Penambahan CharSource.lengthIfKnown()
common.net
  • Penambahan sepasang konstan untuk HttpHeaders dan MediaType
  • Update daftar suffix publik untuk InternetDomainName
common.reflect
  • Penambahan TypeToken.isSubtypeOf(TypeToken) dan TypeToken.isSupertypeOf(TypeToken)
  • Fungsi TypeToken.isAssignableFrom(TypeToken) dan TypeToken.isAssignableFrom(Type) yang telah usang bisa digantikan dengan isSupertypeOf yang menyediakan fungsi yang sama namun dengan nama fungsi yang tidak membingungkan
common.hash
  • Penambahan BloomFilter.create untuk penanganan expectedInsertions yang lama
  • Penambahan Hashing.sha384()
  • Penambahan Hashing.concatenating(HashFunction, HashFunction, HashFunction...) dan Hashing.concatenating(Iterable<HashFunction>)
Library Java besutan Google ini semoga bisa menjadi alternatif bagi proyek berbasis Java yang sedang pembaca kerjakan. Guava 19, bisa pembaca unduh di akun Github milik Google di https://github.com/google/guava/. Selamat mencoba fitur terbarunya.