Pertanyaan yang diberi tag «java8»

Java 8 mengacu pada versi terbaru dari platform Java.

10
Mengapa menggunakan Opsional di Java 8+ alih-alih pemeriksaan pointer nol tradisional?
Kami baru saja pindah ke Java 8. Sekarang, saya melihat aplikasi dibanjiri Optionalobjek. Sebelum Java 8 (Gaya 1) Employee employee = employeeServive.getEmployee(); if(employee!=null){ System.out.println(employee.getId()); } After Java 8 (Gaya 2) Optional<Employee> employeeOptional = Optional.ofNullable(employeeService.getEmployee()); if(employeeOptional.isPresent()){ Employee employee = employeeOptional.get(); System.out.println(employee.getId()); } Saya tidak melihat nilai tambah Optional<Employee> employeeOptional = employeeService.getEmployee();ketika …
110 java  java8 

5
Mengapa metode default dan statis ditambahkan ke antarmuka di Java 8 ketika kita sudah memiliki kelas abstrak?
Di Java 8, antarmuka dapat berisi metode yang diimplementasikan, metode statis, dan apa yang disebut metode "default" (yang tidak perlu ditimpa oleh kelas implementasi). Dalam pandangan saya (mungkin naif), tidak perlu melanggar antarmuka seperti ini. Antarmuka selalu menjadi kontrak yang harus Anda penuhi, dan ini adalah konsep yang sangat sederhana …


3
Mengapa kelas Java 8 java.time melewatkan metode getMillis ()?
Java 8 memiliki pustaka yang sama sekali baru untuk tanggal dan waktu dalam paket java.time yang merupakan hal yang sangat disambut baik bagi siapa saja yang harus menggunakan JodaTime sebelum atau repot dengan membuat sendiri metode pemrosesan pembantu tanggal. Banyak kelas dalam paket ini mewakili stempel waktu dan memiliki metode …
64 java  java8 

3
Apakah ada manfaat kinerja untuk menggunakan sintaks referensi metode alih-alih sintaks lambda di Java 8?
Apakah referensi metode melewatkan overhead bungkus lambda? Mungkinkah mereka di masa depan? Menurut Tutorial Java tentang Referensi Metode : Terkadang ... ekspresi lambda tidak melakukan apa-apa selain memanggil metode yang ada. Dalam kasus tersebut, seringkali lebih jelas untuk merujuk pada metode yang ada dengan nama. Referensi metode memungkinkan Anda untuk …

6
Solusi untuk Java memeriksa pengecualian
Saya menghargai banyak fitur Java 8 baru tentang lambdas dan antarmuka metode standar. Namun, saya masih bosan dengan pengecualian yang diperiksa. Misalnya, jika saya hanya ingin membuat daftar semua bidang yang terlihat dari suatu objek, saya hanya ingin menulis ini: Arrays.asList(p.getClass().getFields()).forEach( f -> System.out.println(f.get(p)) ); Namun, karena getmetode ini dapat …


3
Apakah ini merupakan antipattern untuk menggunakan peek () untuk memodifikasi elemen stream?
Misalkan saya memiliki aliran Things dan saya ingin "memperkaya" mereka mid stream, saya dapat menggunakannya peek()untuk melakukan ini, misalnya: streamOfThings.peek(this::thingMutator).forEach(this::someConsumer); Asumsikan bahwa mutasi Hal pada titik ini dalam kode adalah perilaku yang benar - misalnya, thingMutatormetode ini dapat menetapkan bidang "lastProcessed" ke waktu saat ini. Namun, peek()dalam sebagian besar konteks …

1
Ketik inferensi di Java 8
Apakah pengenalan notasi lambda baru (lihat misalnya artikel ini ) di Java 8 akan memerlukan beberapa jenis inferensi? Jika demikian, bagaimana sistem tipe baru akan berdampak pada bahasa Java secara keseluruhan?

9
Mengapa menggunakan preferensi preferensial untuk memeriksa variabel?
Ambil dua contoh kode: if(optional.isPresent()) { //do your thing } if(variable != null) { //do your thing } Sejauh yang saya tahu perbedaan yang paling jelas adalah bahwa Opsional membutuhkan pembuatan objek tambahan. Namun, banyak orang sudah mulai mengadopsi Opsional dengan cepat. Apa keuntungan menggunakan opsional dibandingkan cek nol?
25 java  java8 

3
Mengapa Optional.get () tanpa memanggil isPresent () buruk, tetapi tidak iterator.next ()?
Saat menggunakan Java8 stream api baru untuk menemukan satu elemen spesifik dalam koleksi, saya menulis kode seperti ini: String theFirstString = myCollection.stream() .findFirst() .get(); Di sini IntelliJ memperingatkan bahwa get () dipanggil tanpa memeriksa isPresent () terlebih dahulu. Namun, kode ini: String theFirstString = myCollection.iterator().next(); ... tidak menghasilkan peringatan. Apakah …
23 java8 


3
Apakah ini hal yang wajar untuk mengembalikan Streaming di mana pun kami biasanya akan mengembalikan Koleksi?
Saat mengembangkan API saya yang tidak terikat dengan kode warisan apa pun, saya sering menemukan diri saya menulis metode yang murni pipa Streams diakhiri dengan mengumpulkan hasilnya. Seperti yang ini: ImmutableSet<T> deriveSomethingMeaningfulFromPrivateState() { return myPrivateThingies.stream() .map(this::ownerOfThing) .map(Owner::socialStatus) .filter(SocialStatus::isHeAFineMatey) .collect(MyCustomCollectors.toImmutableSet()); } Sekarang, sebagian besar klien dari kelas ini biasanya akan membutuhkan …

1
Melewati fungsi Scala ke metode Java 8
Kode Scala berikut berfungsi dan dapat dikirimkan ke metode Java yang mengharapkan suatu fungsi. Apakah ada cara yang lebih bersih untuk melakukan ini? Ini kartu masuk pertamaku: val plusOne = new java.util.function.Function[Int,Int] { override def apply(t:Int):Int = t + 1 override def andThen[V](after:function.Function[_ >: Int, _ <: V]): function.Function[Int, V] …

1
Apakah Collection.stream (). Filter (). ForEach () tidak efisien dibandingkan dengan standar untuk setiap loop?
IntelliJ IDEA merekomendasikan kepada saya saat ini untuk mengganti setiap loop berikut dengan panggilan Java 8 "forEach": for (Object o : objects) { if (o instanceof SomeObject) { doSomething(); } } Panggilan yang disarankan akan seperti ini: objects.stream().filter(o -> o instanceof SomeObject).forEach(o -> doSomething()); Kecuali saya salah paham bagaimana fungsi …

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.