yan's Handicraft

作成したフリーソフトを公開
Home » PC/システム開発 » java » Stream インタフェースを実装して Either を作る

Stream インタフェースを実装して Either を作る

7月 14th, 2016 Posted in java, scala Tags: , , ,
このエントリーをはてなブックマークに追加
はてなブックマーク - Stream インタフェースを実装して Either を作る
Facebook にシェア
[`yahoo` not found]
[`livedoor` not found]
[`friendfeed` not found]

java で開発していると、 Either クラス がほしくなることがあります。(Scala だったらな。。。と思ってしまいます)
関数型ライブラリ http://www.functionaljava.org/ や http://www.javaslang.io/ などを採用すれば、 Either クラスが実装されているのですが、 これらのライブラリを使うと、
java 標準の List 、 Set 、Stream 、Optional を捨てる覚悟がいります。

家で趣味で作る分ならともかく、仕事で参加メンバー全員にこれを強いるのはなかなか勇気がいります。

そこで、java.util.stream.Stream インタフェースを実装した Either クラスを作ることを思いつきました。

Stream は java8の標準ライブラリなので、java の List 、Stream 、Optional は問題なく使えそうです。 そして、 Either も使える。
うまくいきそうな気がします。。。

実装したクラスの配置場所

クラス設計の方針

以下、簡単ですが一応説明します

  • 抽象クラス Either 、具象クラス Either.Left 、 Either.Right を作る。

  • Either.Left が異常系で使用する値クラス。 Either.Right が、正常系に使用する想定の値クラス。

  • Either.Left は、Stream#empty() と同じようなふるまいをする。

  • Either.Right は Stream#of(value) と同じようなふるまいをする。

これから、使ってみようかなと思います。使いやすいのか否かはこれから評価します。

  • Optional も Stream インタフェースを実装した Option とか作れば、不満 も解消するかも。

One Response to “Stream インタフェースを実装して Either を作る”

  1. […] Stream インタフェースを実装して Either を作る と同じようなことをすれば、Optional よりましなものになるかも。 ただ、java8 の標準の Optional があるのに、わざわざ新しく作った Optional を使うほうが使いやすくなるのかという疑問はあります。 […]

Leave a Reply

*