問題タブ [vavr]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - このコンバーターがキャストを必要とするのはなぜですか?
Enum_2
java: >で enum から enum へのコンバーターを実装する必要がありEnum_1
、一般的な方法でそれを実行したいと考えています。
だから私はインターフェースを定義しました:
とEnum_1
:
そして、Enum_2
これを実装LabelAware
し、次のように変換する必要がありますEnum_1
:
最後に、一般的なコンバーターを次に示します ( javaslangList.ofAll()
に由来します)。
そして主な方法:
それはすべてコンパイルしてうまく実行されますが、Converter.map
メソッドの結果を にキャストする必要がある理由がわかりません。警告なしで一般的な方法で実行できますか?D
D
Enum
java - オプションを使用してこのネストされたフローを実装する方法は?
入力として受け取るメソッドがあり、String
また を返す必要がありString
ます。
次の ASCII アートは、論理フローを表しています。
基本的に、与えられた場合、にラップされて返されるオブジェクトをinput
探しています。次に is is present 私が探している- ラップされたtoo 、そうでない場合は return . が存在する場合は ID を返し、そうでない場合は を返します。A
Option
A
B
Option
ERR_1
B
ERR_2
オプション(またはパターンマッチングでしょうか?)を使用して( ifologyなしで)素敵で簡潔な方法で、おそらくワンライナーで実装する方法を考えています。
誰でも何か提案してもらえますか?
試してみるソースコードはここにあります。
java - javaslang CharSeqが最終的なのはなぜですか?
なぜJava で final なのかという議論はよく知られています。String
しかし、なぜ javaslang のCharSeqも最終的なのか疑問に思っていました。
javaslang の FP のインスピレーションと、Haskell がtype synonymsCharSeq
を許可しているという事実を考えると、おそらくメソッドを final として非 finalにする良い機会になると思いました。
非 finalCharSeq
を使用すると、空の本体でそれを拡張して、型シノニムの適切な近似を作成できます。これにより、追加の型安全性が必要な場合に、小さな型パターンのボイラープレートを回避できます。
これがデザインではないのには十分な理由があると確信しており、それが私がここで質問している理由です.
2016 年 12 月 16 日更新: github の javaslang チームに問題#1764として拡張要求を提出しました。
java - cdi インスタンスの javaslang List.of()
作成した修飾子を持つ複数のクラスがあります。
これが修飾子です(質問には重要ではありません)
別のクラスでは、javax.enterprise.inject.Instance<> を使用してこれらのインスタンスを注入します
「通常の」反復を実行すると (...)、オブジェクト (TruckService または CarService) がパラメーターとして somefunction() に渡されます。
しかし、javaslang のList.of(...) を使用すると、インスタンス自体が取得されます。これは予想される動作だと思います
1 つまたは複数の Bean を含むことができるインスタンスで List.of を使用する可能性はありますか (インジェクション バインディングによって異なります)。(私はすでにインスタンスで iterator()、select() を呼び出そうとしています)
java - Javaslang オブジェクトの分解が機能しない
私はJavaslang-2.1.0-alphaとそれに相当するJavaslang-matchを使用して、オブジェクトの分解を行っています。「マッチ・ザ・ファンシー・ウェイ」セクションのダニエルによるブログ投稿によるこれによると:
and内の 2 つのワイルドカード パターンに一致する値を取得する必要がAddress
ありますが、この例はコンパイルさえしません。後で、すべてのオブジェクトをアトミック パターン内にラップする必要があることに気付きました。つまり、"Carl" は $("Carl") になります。これは、この問題を読んだ後でした。street
number
更新されたチュートリアルに従いましたが、この例には更新がありませんでした。
例を次のように更新しました。
それはコンパイルされますが、コンソール出力から判断すると、私の値は適切に一致していません:
Carlと、オブジェクト全体がstreet
含まれていることは明らかです。number
Address
Carlをキャッチするために 3 番目のラムダ パラメータを追加しようとすると、次のようになります。
コードをコンパイルできません。ラムダ式に赤い下線が引かれ、次のエラー テキストが表示されます。
$_
最新バージョンの javaslang-match で値を無視する方法はありません。したがって、上記のように 3 つのラムダ パラメータを返すアトミック パターンのそれぞれに一致させたいと考えています。
このライブラリを理解し、最新バージョンでこのオブジェクト分解を行う方法を説明してくれる人が必要です。
java - Java 8 Predicate を使用して「最も」正しい値を見つける
私の質問をチェックしてくれてありがとう!
複数の述語が特定の順序で適用されている Streams を使用して頭を悩ませています。
例として、次の IntPredicates を検討してください。
パート1
私が抱えている問題を「FizzBuzz」風のバージョンに変換し、述語を特定の順序でストリームに適用して正しい答えを見つけようとしました。そのようです:
これはあまりきれいなコードではないと思います。これを達成するためのより良い方法はありますか?
パート2
適切な値がストリームに存在するかどうかを確認するために述語を適用し、返される関連値 (この場合は出力する文字列) を計算する必要がある場合はどうでしょうか。それはどのように見えるでしょうか?
提案された素朴な解決策:
これは、審美的にも、追加された反復のために、さらに悪いように見えます。
パート3
これは、 JavaSlang Matchを使用して、よりきれいで効率的な方法で解決できるでしょうか?
ここでの明らかな問題は、".findFirst()" です。この場合、これは Integer 1 になり、式全体が "None found" と評価されてから終了します。
私が望むのは、基本的に、一致の最初の述語に一致するものをすべて取得し、その値が存在する場合はその値を使用し、最初の一致が見つからない場合は 2 番目のケースに一致するものだけを提供することです。ストリーム内の値がどの述語にも一致しない場合、デフォルト(「見つかりません」)のみを提供します。
これを行うためのより良い方法が必要ですよね?それとも、より伝統的で命令的なスタイルに任せた方がよい何かをしようとして時間を無駄にしているだけですか?
私の質問を読んでくれてありがとう!