「Java SE 8 関数インターフェース」の版間の差分
ナビゲーションに移動
検索に移動
(ページの作成:「==Java SE 8 関数インターフェース== [Java SE 8] *http://docs.oracle.com/javase/specs/jls/se8/html/jls-9.html#jls-9.8 *関数インターフェースは、…」) |
|||
(同じ利用者による、間の2版が非表示) | |||
1行目: | 1行目: | ||
− | ==Java SE 8 関数インターフェース== | + | ==[[Java SE 8 関数インターフェース]]== |
− | [Java SE 8] | + | [[Java SE 8]] | |
*http://docs.oracle.com/javase/specs/jls/se8/html/jls-9.html#jls-9.8 | *http://docs.oracle.com/javase/specs/jls/se8/html/jls-9.html#jls-9.8 | ||
11行目: | 11行目: | ||
===例=== | ===例=== | ||
====簡単な関数インターフェースの例==== | ====簡単な関数インターフェースの例==== | ||
− | interface | + | interface [[R]]unnable { |
void run(); | void run(); | ||
} | } | ||
22行目: | 22行目: | ||
int compare(String o1, String o2); | int compare(String o1, String o2); | ||
} | } | ||
− | =====同様に、java.util.Comparator | + | =====同様に、java.util.Comparator<T> は一つの抽象メソッドをもち、かつObjectのメソッドではないため、関数インターフェースとなる。===== |
− | interface Comparator | + | interface Comparator<T> { |
boolean equals(Object obj); | boolean equals(Object obj); | ||
int compare(T o1, T o2); | int compare(T o1, T o2); |
2020年2月16日 (日) 04:27時点における最新版
目次
- 1 Java SE 8 関数インターフェース
- 1.1 例
- 1.1.1 簡単な関数インターフェースの例
- 1.1.1.1 以下は、関数インターフェースではない。Objectのメンバーであってはいけない。
- 1.1.1.2 しかしながら、上記を継承したサブインターフェースは関数インターフェースとなる。 宣言された抽象メソッドは、Objectのメンバーではない。
- 1.1.1.3 同様に、java.util.Comparator<T> は一つの抽象メソッドをもち、かつObjectのメソッドではないため、関数インターフェースとなる。
- 1.1.1.4 次のインターフェースは関数インターフェースではない。一つの抽象メソッドをもち、それはObjectのメンバーではないが、Objectのメンバーではない、2つのpublicな抽象メソッドをもつ。
- 1.1.1 簡単な関数インターフェースの例
- 1.1 例
Java SE 8 関数インターフェース
- 関数インターフェースは、ただ一つの抽象メソッド(オブジェクトから継承するメソッドはさておいて)を持ったインターフェース
- 一つの関数契約を表現する
- この「一つ」のメソッドは、複数の抽象メソッドを、スーパーインターフェースから継承されたオーバーライド同等のシグネチャをともなって形成する。
- この例では、継承されたメソッドは論理的に一つのメソッドを表現する。
例
簡単な関数インターフェースの例
interface Runnable { void run(); }
以下は、関数インターフェースではない。Objectのメンバーであってはいけない。
interface NonFunc { boolean equals(Object obj); }
しかしながら、上記を継承したサブインターフェースは関数インターフェースとなる。 宣言された抽象メソッドは、Objectのメンバーではない。
interface Func extends NotFunc { int compare(String o1, String o2); }
同様に、java.util.Comparator<T> は一つの抽象メソッドをもち、かつObjectのメソッドではないため、関数インターフェースとなる。
interface Comparator<T> { boolean equals(Object obj); int compare(T o1, T o2); }
次のインターフェースは関数インターフェースではない。一つの抽象メソッドをもち、それはObjectのメンバーではないが、Objectのメンバーではない、2つのpublicな抽象メソッドをもつ。
interface Foo { int m(); Object clone(); }
© 2006 矢木浩人