teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

単に「書ける条件」というのであれば

2018/10/25 12:53

投稿

swordone
swordone

スコア20675

answer CHANGED
@@ -27,4 +27,16 @@
27
27
  はその通りになります。ただし、「何を返すかわかっている」というよりむしろ「変数の型で要求されているものを作成する」ニュアンスが強いです。ですから、
28
28
  > 2:その関数型インターフェイス型の引数の型が分かっているか、メソッド参照などによって一つに決めることができる。
29
29
 
30
- というよりもむしろ、「1により型が確定するので、引数として使うべき型も確定する」という関係でとらえるべきだと思います。
30
+ というよりもむしろ、「1により型が確定するので、引数として使うべき型も確定する」という関係でとらえるべきだと思います。
31
+
32
+ 単に「ラムダ式を書ける条件」というなら以下のいずれかになるでしょう。
33
+ 1.関数型インタフェース型の変数に代入する(例は上記で既出)
34
+ 2.関数型インタフェース型の引数を要求するメソッドまたはコンストラクタに渡す
35
+ ```java
36
+ // ThreadクラスのコンストラクタはRunnableを引数に要求するものがある
37
+ Thread thread = new Thread(() -> 何かの処理);
38
+ ```
39
+ 3.キャストする
40
+ ```java
41
+ Object o = (Runnable) () -> 何かの処理;
42
+ ```