このコードの違いは何ですか?
Supplier<LocalDate> s1 = LocalDate::now;
LocalDate s2 = LocalDate.now();
System.out.println(s1.get()); //2016-10-25
System.out.println(s2); //2016-10-25
Java 8 で関数型インターフェースの学習を開始しましたが、サプライヤの利点がわかりません。いつ、どのように、正確に、それらを使用する必要があります。サプライヤはパフォーマンスを向上させますか、それとも抽象化レベルでのメリットをもたらしますか?
回答ありがとうございます。また、検索を使用して必要なものが見つからなかったため、重複した質問ではありません。
更新 1: これのことですか?
Supplier<Long> s1 = System::currentTimeMillis;
Long s2 = System.currentTimeMillis();
System.out.println(s1.get()); //1477411877817
System.out.println(s2); //1477411877817
try {
Thread.sleep(3000l);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(s1.get()); //1477411880817 - different
System.out.println(s2); //1477411877817