私は読んでのJava 8のオプションの引数で使用すべきではない理由。しかし、何についてOptional(Int|Long|Double)
、入力引数としてそれらの使用に対する任意の引数ですか?
私が正しく理解したように、彼らは、しかし、ヌルと(反対メイン引数引数が空でないことはできないOptional<X>
入力パラメータでの)が、他のサンゴ礁があるかもしれ?私が使用する必要がありますOptionalInt
かInteger
とnull
していないnull
値はありますか?
メソッドのパラメータとしてOptionalsを使用していないのこのアイデアは、固有ではないだけでOptional<T>
なく、Optionalsのすべてのタイプ。
あなたが言う時:
私が正しく理解したように、彼らは空ではないことはできませんが、ヌルで(反対メイン引数引数
Optional<X>
入力パラメータで)
まず第一にLETのは、ちょうどその時、用語が正しい取得Optional<X>
含まnull以外の我々はそれがだと言うの参照現在私たちが言う他にOptional<X>
ある空または不在を。あなたが言うべきではありませんOptional<X>
が含まヌルを。
すべてのOptionalsは関係なく、それが型のオブジェクトのコンテナのかどうかを空にすることができT
、またはプリミティブ型。
あなたが覗いた場合、たとえば、OptionalIntのクラスのドキュメント、それは言います:
またはint値を含んでも含まなくてもよいコンテナオブジェクト。値が存在する場合、isPresent()がtrueを返しますとgetAsInt()値を返します。
重点鉱山。
オプションは、その後、int型の値が含まれていないときには、空のオプションです。
私は、NULL値はnullではないOptionalIntまたは整数を使用する必要がありますか?
使用に関してOptionalInt
かInteger
本当にあなたのユースケースに依存します。
- すべてのオプションの両方のタイプのコンテナのような
T
およびプリミティブ型、彼らがしている記述し、存在する場合値を抽出したり、不在であれば、他の何かをする操作の異なるタイプを適用することを可能に。 - 任意の
Integer
フィールドには値を割り当てることができ、ヌルを。 - 一つは、返すことができ
null
た任意の方法でInteger
戻り値の型として。 OptionalInt
フィールド(物議を)assingedすべきではありませんnull
それが最初の場所でオプションを使用しての全体の目的に反して。- 一つは返すことはありません
null
戻り値の型を有するいずれかの方法でOptionalInt
、それは最初の場所でオプションを使用しての全体の目的に反して再び。
等..
さらに、一部の人々が実際に彼らが欠けているという理由だけで、プリミティブOptionalsの使用を思いとどまらmap
、flatMap
、およびfilter
方法を。
基本的に、常に最良のニーズに適合することをAPIを選ぶ代わりに、Optionalsまたは副ベラを使用するには何のルールはありません。