簡體   English   中英

Java 8:是否可以將方法引用分配給變量?

[英]Java 8: Is it possible to assign a method reference to a variable?

我用Google搜索了這個問題的答案,但是找不到。

在Java 8中,我知道這是可能的:

// someMethod is defined as: someMethod(AFunctionalInterface i)
someMethod(someObject::someOtherMethod);

問題是:是否可以執行以下操作

AFunctionalInterface i = anObject::SomeMethod;

另外,是否可以像這樣將lambda分配給變量並將其傳遞呢?

Printer f = () -> System.out.println(..); methodThatTakesPrinter(f);

是的,根據JLS中引用的示例,這是可能的:

 Task t = () -> System.out.println("hi"); Runnable r = t::invoke; 

另外,聲明以下內容:

如果T是功能接口類型(第9.8節)並且該表達式與基本目標的功能類型一致,則方法引用表達式在分配上下文 [強調礦井],調用上下文或強制轉換上下文中與目標類型T兼容。從T派生的類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM