タグ付けされた質問 「java-8」

このタグは、2014年3月18日にリリースされたJavaプラットフォームのバージョン8(内部番号1.8)であるJava 8に固有の質問に使用します。ほとんどの場合、javaタグも指定する必要があります。

12
Collectors.toMapのJava 8 NullPointerException
Java 8 は、値の1つが「null」の場合にCollectors.toMapaをスローしNullPointerExceptionます。私はこの振る舞いを理解していません、マップは問題なく値としてnullポインターを含むことができます。値をnullにできない正当な理由はありますCollectors.toMapか? また、これを修正するためのJava 8の優れた方法はありますか、それとも、従来のforループに戻す必要がありますか? 私の問題の例: import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.stream.Collectors; class Answer { private int id; private Boolean answer; Answer() { } Answer(int id, Boolean answer) { this.id = id; this.answer = answer; } public int getId() { return id; } public void setId(int id) { …

13
中断するか、Java 8ストリームから戻るか?
使用する場合は、外部反復を介してIterable我々の使用breakまたはreturnのために、各ループのように強化さから: for (SomeObject obj : someObjects) { if (some_condition_met) { break; // or return obj } } どのように、breakまたは次のようなJava 8ラムダ式で内部反復returnを使用できますか? someObjects.forEach(obj -> { //what to do here? })
313 java  foreach  lambda  java-8 

17
Javadocタグが不完全な場合、MavenがJava 8で機能しない
私はMavenを使用しているので、不完全なJavadocタグ(たとえば、欠落しているパラメーター)があるローカルリポジトリプロジェクトにビルドしてインストールすることができました。 ただし、Java 8(1.8.0-ea-b90)に移行したので、Mavenはドキュメントタグの欠落に厳格であり、Javadocがないプロジェクトをビルドまたはインストールしようとすると、Javadocの問題に関連する多くのJavadocエラーが表示されます「完璧」。ローカルリポジトリにコンパイルしてインストールしようとしているプロジェクトの一部は、私が制御できないサードパーティのプロジェクトです。したがって、これらのすべてのプロジェクトですべてのJavadocを修正するという回避策は、私のシナリオでは実行可能ではないようです。 これはmvn clean package install、プロジェクトで実行したときに表示される出力の一部です。 [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 9.026s [INFO] Finished at: Mon Apr 08 21:06:17 CEST 2013 [INFO] Final Memory: 27M/437M [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.9:jar (attach-javadocs) on project jpc: MavenReportException: Error while creating archive: [ERROR] Exit …

9
「Java Concurrency In Practice」はまだ有効ですか?[閉まっている]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 3年前休業。 この質問を改善する ある練習でのJava並行処理がまだ有効?この本で説明されているアイデア、概念、実装が最新のJavaバージョンに引き続き準拠しているかどうか疑問に思っています。 2006年に最新版が出来たのでお願いします。


17
Java 8ストリーム内からCHECKED例外をスローするにはどうすればよいですか?
Java 8ストリーム/ラムダからCHECKED例外をスローするにはどうすればよいですか? つまり、次のようなコードをコンパイルしたいのです。 public List<Class> getClasses() throws ClassNotFoundException { List<Class> classes = Stream.of("java.lang.Object", "java.lang.Integer", "java.lang.String") .map(className -> Class.forName(className)) .collect(Collectors.toList()); return classes; } Class.forName()上記のメソッドClassNotFoundExceptionはチェックされているをスローするため、このコードはコンパイルされません。 チェック済みの例外をランタイム例外内にラップせず、代わりにラップされた未チェックの例外をスローしたくないことに注意してください。チェックされた例外自体をスローし、醜いtry/ catchesをストリームに追加しないでください。

4
Collection.stream()。forEach()とCollection.forEach()の違いは何ですか?
で.stream()、.filter()並列ストリームのようなチェーン操作を使用できることを理解しています。しかし、小さな操作(たとえば、リストの要素の印刷)を実行する必要がある場合、それらの違いは何ですか? collection.stream().forEach(System.out::println); collection.forEach(System.out::println);

9
Java 8でLocalDateTimeからミリ秒を取得する方法
Java 8の新しいLocalDate、LocalTimeまたはLocalDateTimeクラスを使用して、1〜1970(エポック)以降の現在のミリ秒を取得する方法があるかどうか疑問に思っています。 既知の方法は以下のとおりです。 long currentMilliseconds = new Date().getTime(); または long currentMilliseconds = System.currentTimeMillis();


11
Java 8のOptional.ifPresentおよびif-not-Presentの機能スタイル?
Java 8では、Optionalオブジェクトが存在する場合は何かを行い、存在しない場合は別のことを行います。 if (opt.isPresent()) { System.out.println("found"); } else { System.out.println("Not found"); } ただし、これは「機能的なスタイル」ではありません。 OptionalifPresent()メソッドを持っていますが、メソッドをチェーンできませんorElse()。 したがって、私は書くことができません: opt.ifPresent( x -> System.out.println("found " + x)) .orElse( System.out.println("NOT FOUND")); @assyliasへの返信として、私はOptional.map()次の場合にはうまくいかないと思います: opt.map( o -> { System.out.println("while opt is present..."); o.setProperty(xxx); dao.update(o); return null; }).orElseGet( () -> { System.out.println("create new obj"); dao.save(new obj); return null; }); …

13
オプションの用途
6か月以上Java 8を使用しているので、新しいAPIの変更にかなり満足しています。私がまだ確信していない領域の1つは、いつ使用するかOptionalです。どこにでもそれを使いたいのかnull、どこにも使いたくないのか、どんどん変わっていくようです。 私がそれを使用できる状況はたくさんあるようで、それが利点(読みやすさ/ nullの安全性)を追加するのか、それともオーバーヘッドを増やすだけなのか、私にはわかりません。 だから、私はいくつかの例を持っています、そして私はコミュニティOptionalが有益であるかどうかについての考えに興味があります。 1-メソッドが返すことができるパブリックメソッドの戻り値の型としてnull: public Optional<Foo> findFoo(String id); 2-パラメータが次の場合のメソッドパラメータとしてnull: public Foo doSomething(String id, Optional<Bar> barOptional); 3-Beanのオプションのメンバーとして: public class Book { private List<Pages> pages; private Optional<Index> index; } 4-でCollections: 一般的に私は思いません: List<Optional<Foo>> 何かを追加します-特に値のfilter()削除nullなどに使用できますがOptional、コレクションでの良い使用法はありますか? 私が見逃したケースはありますか?
271 java  java-8  optional 

10
Java 8:複数の単位での2つのLocalDateTimeの違い
2つの差を計算しようとしていますLocalDateTime。 出力は次の形式である必要がありますy years m months d days h hours m minutes s seconds。これが私が書いたものです: import java.time.Duration; import java.time.Instant; import java.time.LocalDateTime; import java.time.Period; import java.time.ZoneId; public class Main { static final int MINUTES_PER_HOUR = 60; static final int SECONDS_PER_MINUTE = 60; static final int SECONDS_PER_HOUR = SECONDS_PER_MINUTE * MINUTES_PER_HOUR; public static void …

3
Java 8 Date Time API(java.time)とJoda-Timeの違い
java.util.DateとJoda-Timeに関連する質問があることは知っています。しかし、少し掘り下げた後、java.time API(Java 8の新機能、JSR 310で定義)とJoda-Timeの違いについてのスレッドを見つけることができませんでした。 Java 8のjava.time APIは、Joda-Timeよりもずっとクリーンで、多くのことができると聞いています。しかし、私は2つを比較する例を見つけることができません。 Joda-Timeではできないjava.timeの機能 java.timeはJoda-Timeより優れている点は何ですか? java.timeを使用するとパフォーマンスが向上しますか?

9
Stream <T>がIterable <T>を実装しないのはなぜですか?
Java 8では、クラスStream &lt;T&gt;があり、奇妙なことにメソッドがあります Iterator&lt;T&gt; iterator() そのため、このメソッドを必要とするIterable &lt;T&gt;インターフェースの実装が期待されますが、そうではありません。 foreachループを使用してストリームを反復処理する場合は、次のようにする必要があります public static Iterable&lt;T&gt; getIterable(Stream&lt;T&gt; s) { return new Iterable&lt;T&gt; { @Override public Iterator&lt;T&gt; iterator() { return s.iterator(); } }; } for (T element : getIterable(s)) { ... } ここで何か不足していますか?

9
デフォルトのインターフェースメソッドはAndroid N以降でのみサポートされています
Android Studio 3.1にアップグレードしたところ、次のエラーが発生しました。 Default interface methods are only supported starting with Android N (--min-api 24): void android.arch.lifecycle.DefaultLifecycleObserver.onCreate(android.arch.lifecycle.LifecycleOwner) Message{kind=ERROR, text=Default interface methods are only supported starting with Android N (--min-api 24): void android.arch.lifecycle.DefaultLifecycleObserver.onCreate(android.arch.lifecycle.LifecycleOwner), sources=[Unknown source file], tool name=Optional.of(D8)} これが私のgradle設定です: compileSdkVersion 27 //buildToolsVersion '27.0.3' defaultConfig { minSdkVersion 16 targetSdkVersion 27 multiDexEnabled true …
262 android  java-8  kotlin 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.