Java8イテレータストリームフィルタNoSuchElementException

フランツくん
    public static double getAttackSpeed(ItemStack item) {
    Attributes ab = new Attributes(item);
    for(Attributes.Attribute attribute : ab.values())
        Flawlord.log(attribute.getName());
    return FlawlordHelper.stream(ab.values()).filter(a -> a.getAttributeType().equals(Attributes.AttributeType.GENERIC_ATTACK_SPEED)).findFirst().get().getAmount();
}

これは機能しません

    public static int getDamage(ItemStack item) {
    Attributes ab = new Attributes(item);
    int dmg = 0;
    for(Attributes.Attribute attribute : ab.values())
        if (attribute.getAttributeType() == Attributes.AttributeType.GENERIC_ATTACK_DAMAGE)
            dmg = (int) attribute.getAmount();
    return dmg;
}

これは動作します

こんにちは。後者が機能する理由を誰かが私に説明できますが、前者は機能しませんか?多分私はそれを取得していない、idk。おそらく.equals()はここでは機能しないと思いますか?

ラムダで最初のものを使用すると、「NoSuchElementException:値がありません」という例外が発生します。

Sleiman Jneidi

結果がない可能性があり、NPEと同じくらい悪くなるがスローされるためgetを呼び出すことは想定されていませんまたは代わりに使用できますOptionalNoSuchElementExceptionOptional.mapOptional.isPresent

findFirst 要素が見つかる保証がないため、オプションを返します。

イテレータは異なり、少なくとも1つの要素がある場合にのみ反復します。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Javaの8ストリーム複数のフィルタ

分類Dev

アキュムレータ及びコンバイナを使用してストリームを低減java8

分類Dev

複数のパラメータによってJava8ストリームフィルタ

分類Dev

Javaの8ストリームでフィルタ地図

分類Dev

Java8ストリームを使用してマップのキーでフィルタリングした後、リストにマップ

分類Dev

Java8ストリームを使用したリストのフィルタリング

分類Dev

Java 8ストリームフィルター

分類Dev

コンパレーター付きJava 8ストリームフィルター

分類Dev

Java8ストリームAPIでフィルターとしてグアバ述語を使用する方法

分類Dev

Java8ストリーム-条件に基づいたイテレータのマップと削除

分類Dev

Java8ストリームAPIでフィルターとしてグアバ述語を使用する方法

分類Dev

Java8ストリームは遅延評価の意図をフィルタリングします

分類Dev

Java8ストリームとフィルター

分類Dev

ラムダJava8、フィルター操作の結果のファイルであるリストをマップする方法

分類Dev

Java8ストリームでループと条件をリファクタリングする

分類Dev

Java8ストリーム-単一のストリームに一定量の述語フィルターを適用します

分類Dev

Java 8、ストリームフィルター、リフレクト、NoSuchMethodException

分類Dev

Java8ストリーム-フィルターを使用して要素をリストに追加します

分類Dev

カスタムコンパレータ。Java8のフィールドのみで比較

分類Dev

Java8コンプレックスストリームフィルターおよびvsまたは

分類Dev

複数のフィルター上のJava8ストリームフィルター

分類Dev

Java8ストリーム-イテレータが期待どおりに機能しない

分類Dev

アキュムレータジェネレータテスト-Java8

分類Dev

入力データ用のJava8ストリームユーティリティ

分類Dev

Java8ストリーム-リストをフィルタリングして値を取得する方法

分類Dev

Java8ストリームを使用してリスト内のアイテムのフィールドに値を追加する方法

分類Dev

特定の属性を持つ特定のサブタイプを参照するJava8ストリームからのフィルター要素

分類Dev

ホームディレクトリUbuntuにJAVA8をインストールします

分類Dev

Java8配列ストリームフィルター

Related 関連記事

  1. 1

    Javaの8ストリーム複数のフィルタ

  2. 2

    アキュムレータ及びコンバイナを使用してストリームを低減java8

  3. 3

    複数のパラメータによってJava8ストリームフィルタ

  4. 4

    Javaの8ストリームでフィルタ地図

  5. 5

    Java8ストリームを使用してマップのキーでフィルタリングした後、リストにマップ

  6. 6

    Java8ストリームを使用したリストのフィルタリング

  7. 7

    Java 8ストリームフィルター

  8. 8

    コンパレーター付きJava 8ストリームフィルター

  9. 9

    Java8ストリームAPIでフィルターとしてグアバ述語を使用する方法

  10. 10

    Java8ストリーム-条件に基づいたイテレータのマップと削除

  11. 11

    Java8ストリームAPIでフィルターとしてグアバ述語を使用する方法

  12. 12

    Java8ストリームは遅延評価の意図をフィルタリングします

  13. 13

    Java8ストリームとフィルター

  14. 14

    ラムダJava8、フィルター操作の結果のファイルであるリストをマップする方法

  15. 15

    Java8ストリームでループと条件をリファクタリングする

  16. 16

    Java8ストリーム-単一のストリームに一定量の述語フィルターを適用します

  17. 17

    Java 8、ストリームフィルター、リフレクト、NoSuchMethodException

  18. 18

    Java8ストリーム-フィルターを使用して要素をリストに追加します

  19. 19

    カスタムコンパレータ。Java8のフィールドのみで比較

  20. 20

    Java8コンプレックスストリームフィルターおよびvsまたは

  21. 21

    複数のフィルター上のJava8ストリームフィルター

  22. 22

    Java8ストリーム-イテレータが期待どおりに機能しない

  23. 23

    アキュムレータジェネレータテスト-Java8

  24. 24

    入力データ用のJava8ストリームユーティリティ

  25. 25

    Java8ストリーム-リストをフィルタリングして値を取得する方法

  26. 26

    Java8ストリームを使用してリスト内のアイテムのフィールドに値を追加する方法

  27. 27

    特定の属性を持つ特定のサブタイプを参照するJava8ストリームからのフィルター要素

  28. 28

    ホームディレクトリUbuntuにJAVA8をインストールします

  29. 29

    Java8配列ストリームフィルター

ホットタグ

アーカイブ