Skip to content

Java 9

Interfaces

"Interface"ler private metotlara sahip oldu.

public interface CategoryDAO{
    private static void categoryPrivate(){
        System.out.println("Private metot!");
    }
}

Diamond Operatörü

//Listeye ekleme yaparken compile time da değil run time da hata verecektir
List<String> categories = new LinkedList();
categories.add("Yoğurt");
categories.add(Boolean.TRUE); // Compile time da hata vermez
categories.forEach(System.out::println);
//    java.lang.Boolean cannot be cast to java.lang.String
//Hatası verecektir
//Diamond operatörü ile bunun önüne geçebiliriz.
List<String> categories = new LinkedList<String>();
categories.add("Yoğurt");
categories.add(Boolean.TRUE); // Compile time da hata verecek

Collections

Collections modülüne kullanışlı yeni metotlar eklendi

List<String> categoryList = List.of("Yoğurt", "Ayran", "Tatlı");
Set<String>  categorySet = Set.of("Ayran", "Ayran", "Yoğurt");
Map<String, int> categoryMap = Map.of("Ayran", 1, "Yoğurt", 2);

Streams

Streams modülüne yeni metotlar eklendi

Stream<String> stream = Stream.iterate("", s -> s + "s")
  .takeWhile(s -> s.length() < 10);

Optionals

Objelere null atamak yerine tip seviyesinde bir çözüm sunan Optionals modülünde metot referensları için güncelleme yapıldı.

category.ifPresentOrElse(this::getProducts, this::printNotFound);

JShell

Terminal üzeinden basit komutları yazıp hemen sonucunun alınabileceği bir java shell aracı geldi.

$ jshell
|  Welcome to JShell -- Version 9
|  For an introduction type: /help intro

jshell> int demo = 9
demo ==> 9

HTTPClient

Java 9 dan önce HTTP desteği konusunda third party kütüphanelere bağımlılık vardı. Java 9 ile beraber varsayılan destek de sağlandı.

Jigsaw

Jigsaw Modül Sistemi ile beraber birden fazla JVM versiyonuna jar dosyalarının release edilmesi sağlandı.