簡體   English   中英

在功能界面中找不到目標方法

[英]No target method found in functional interface

我想了解有關Java 8 FunctionalInterface注釋的更多信息。 我編寫了以下代碼作為實驗,但它沒有編譯:

@FunctionalInterface
public interface HasToString {

    String toString();
}

找不到目標方法

有趣的是,這確實編譯:

@FunctionalInterface
public interface HasToString {

    String notToString();
}

為什么是這樣?

這在JLS 9.8中說明

功能接口是一個只有一個抽象方法(除了Object的方法)的接口 ,因此代表一個函數契約。 這種“單一”方法可以采用多個抽象方法的形式,從超級接口繼承的覆蓋等效簽名; 在這種情況下,繼承的方法在邏輯上代表一個方法。

由於toString是“ 類Object的公共實例方法 ”,因此您的接口不符合功能接口的條件。

暫無
暫無

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

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