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

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


5
Java 8でUTC + 0の日付を取得する方法
JavaのDateクラスに問題があります。日付クラスはローカルマシンの日付を返しますが、UTC-0が必要です。 私はググってJavaScriptには素晴らしい解決策を見つけましたが、Javaには何の役にも立ちません。 Java 8でUTC + 0の日付を取得する方法


6
java.util.OptionalがSerializableでない理由、そのようなフィールドでオブジェクトをシリアル化する方法
EnumクラスはSerializableなので、列挙型を使用してオブジェクトをシリアル化しても問題はありません。もう1つのケースは、クラスにjava.util.Optionalクラスのフィールドがある場合です。この場合、次の例外がスローされます。java.io.NotSerializableException:java.util.Optional そのようなクラスを処理する方法、それらをシリアル化する方法?そのようなオブジェクトをリモートEJBまたはRMI経由で送信することは可能ですか? これは例です: import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.ObjectOutputStream; import java.io.Serializable; import java.util.Optional; import org.junit.Test; public class SerializationTest { static class My implements Serializable { private static final long serialVersionUID = 1L; Optional<Integer> value = Optional.empty(); public void setValue(Integer i) { this.i = Optional.of(i); } public Optional<Integer> getValue() { return …

11
インターフェースの静的メソッドとデフォルトメソッドの違い
インターフェイスで静的メソッドとデフォルトメソッドを定義できるようになったことに気付いたとき、私はインターフェイスを学習していました。 public interface interfacesample2 { public static void method() { System.out.println("hello world"); } public default void menthod3() { System.out.println("default print"); } } 2つの違いを説明してください。また、いつ使用するかについての例がある場合は、これがいいでしょう。インターフェイスで少し混乱しています。
107 java  java-8 



20
ストリームから連続するペアを収集する
のようなストリームを考えると{ 0, 1, 2, 3, 4 }、 どのようにして最もエレガントにそれを与えられた形式に変換できますか? { new Pair(0, 1), new Pair(1, 2), new Pair(2, 3), new Pair(3, 4) } (もちろん、私はクラスPairを定義したと仮定します)? 編集:これは、厳密にはintやプリミティブストリームに関するものではありません。答えは、あらゆるタイプのストリームに対して一般的である必要があります。
102 java  java-8  java-stream 

6
LocalDateとLocalDateTimeからエポックを抽出する方法は?
またはのLongインスタンスからエポック値を抽出するにはどうすればLocalDateTimeよいLocalDateですか?私は以下を試しましたが、他の結果が得られます: LocalDateTime time = LocalDateTime.parse("04.02.2014 19:51:01", DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss")); System.out.println(time.getLong(ChronoField.SECOND_OF_DAY)); // gives 71461 System.out.println(time.getLong(ChronoField.EPOCH_DAY)); // gives 16105 私が欲しいのは、単に1391539861ローカルのdatetimeの値です"04.02.2014 19:51:01"。私のタイムゾーンはEurope/Oslo夏時間のUTC + 1です。
102 java  time  java-8  epoch  java-time 

9
ZonedDateTimeを日付に変換する方法は?
サーバーに依存しない日付時刻をデータベースに設定しようとしています。そのためのベストプラクティスは、UTC DateTimeを設定することです。私のdbサーバーはCassandraであり、Java用のdbドライバーはDateタイプのみを認識します。 私のコードで新しいJava 8 ZonedDateTimeを使用して今すぐUTCを取得すると(ZonedDateTime.now(ZoneOffset.UTC))、このZonedDateTimeインスタンスを「レガシー」Dateクラスに変換するにはどうすればよいですか?

8
素人向けのJava 8サプライヤーと消費者の説明
Javaを学んでいる非Javaプログラマーとして、私は現在Supplier、Consumerインターフェースとインターフェースについて読んでいます。そして、私は彼らの用法と意味に頭を抱えることはできません。いつ、なぜこれらのインターフェースを使用するのですか?誰かが私にこれの簡単な素人の例を教えてもらえますか?私の理解するのに十分ではないDocの例を見つけています。
101 java  java-8 

5
いつストリームを使用する必要がありますか?
Listとそのstream()方法を使用しているときに質問を見つけました。私が知っている間どのようにそれらを使用するために、私は約かなりよく分からないときにそれらを使用します。 たとえば、さまざまな場所へのさまざまなパスを含むリストがあります。ここで、与えられた単一のパスに、リストで指定されたパスが含まれているかどうかを確認したいと思います。boolean条件が満たされたかどうかに基づいてを返したいのですが。 もちろん、これ自体は難しい作業ではありません。しかし、ストリームを使用する必要があるのか​​、それともfor(-each)ループを使用する必要があるのか​​と思います。 リスト private static final List<String> EXCLUDE_PATHS = Arrays.asList(new String[]{ "my/path/one", "my/path/two" }); 例-ストリーム private boolean isExcluded(String path){ return EXCLUDE_PATHS.stream() .map(String::toLowerCase) .filter(path::contains) .collect(Collectors.toList()) .size() > 0; } 例-For-Eachループ private boolean isExcluded(String path){ for (String excludePath : EXCLUDE_PATHS) { if(path.contains(excludePath.toLowerCase())){ return true; } } return false; } pathパラメータは常に小文字であることに注意してください。 私の最初の推測は、条件が満たされればループがすぐに戻るため、for-eachアプローチの方が速いということです。一方、ストリームはフィルタリングを完了するためにすべてのリストエントリをループします。 …

9
Java 8での複数のnullチェック
複数のnullチェックに対して少し醜い以下のコードがあります。 String s = null; if (str1 != null) { s = str1; } else if (str2 != null) { s = str2; } else if (str3 != null) { s = str3; } else { s = str4; } だからOptional.ofNullable、以下のように使ってみましたが、誰かが私のコードを読んでいるかどうかはまだわかりません。Java 8でそれを行うための最良のアプローチは何ですか? String s = Optional.ofNullable(str1) .orElse(Optional.ofNullable(str2) .orElse(Optional.ofNullable(str3) .orElse(str4))); Java …

8
Javaのデフォルトキーワードの目的は何ですか?
Javaのインターフェースはクラスに似ていますが、インターフェースの本体には抽象メソッドとfinalフィールド(定数)のみを含めることができます。 最近、こんな質問がありました interface AnInterface { public default void myMethod() { System.out.println("D"); } } インターフェイスの定義によると、抽象メソッドのみが許可されます。上記のコードをコンパイルできるのはなぜですか?defaultキーワードは何ですか? 一方、以下のコードを書き込もうとすると、 modifier default not allowed here default class MyClass{ } の代わりに class MyClass { } defaultキーワードの目的を教えてもらえますか?インターフェイス内でのみ許可されていますか?default(アクセス修飾子なし)とどう違うのですか?

5
JavaのラムダforEach()からの戻り値
forEach()ラムダ式の可能性を発見するために、いくつかのfor-eachループをラムダメソッドに変更しようとしています。以下が可能であるようです: ArrayList<Player> playersOfTeam = new ArrayList<Player>(); for (Player player : players) { if (player.getTeam().equals(teamName)) { playersOfTeam.add(player); } } ラムダ付き forEach() players.forEach(player->{if (player.getTeam().equals(teamName)) {playersOfTeam.add(player);}}); しかし、次のものは機能しません: for (Player player : players) { if (player.getName().contains(name)) { return player; } } ラムダ付き players.forEach(player->{if (player.getName().contains(name)) {return player;}}); 最後の行の構文に何か問題がありますforEach()か、それともメソッドから戻ることは不可能ですか?

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