タグ付けされた質問 「jsr335」

5
Java 8インターフェイスメソッドで「最終」が許可されないのはなぜですか?
Java 8の最も便利な機能の1つは、defaultインターフェースの新しいメソッドです。それらが導入された理由は基本的に2つあります(他にもある場合があります)。 実際のデフォルト実装を提供します。例:Iterator.remove() JDK APIの進化を可能にする。例:Iterable.forEach() APIデザイナーの観点から、インターフェイスメソッドで他の修飾子を使用できるようにしたいと思っていましたfinal。これは、便利なメソッドを追加するときに役立ち、クラスの実装における「偶発的な」オーバーライドを防ぎます。 interface Sender { // Convenience method to send an empty message default final void send() { send(null); } // Implementations should only implement this method void send(String message); } 上記がSenderクラスの場合、すでに一般的な方法です。 abstract class Sender { // Convenience method to send an empty message final void …

2
Java 8インターフェースメソッドで「同期」が許可されない理由は何ですか?
Java 8では、次のように簡単に記述できます。 interface Interface1 { default void method1() { synchronized (this) { // Something } } static void method2() { synchronized (Interface1.class) { // Something } } } クラスでも使用できる完全な同期セマンティクスを取得します。ただし、synchronizedメソッド宣言では修飾子を使用できません。 interface Interface2 { default synchronized void method1() { // ^^^^^^^^^^^^ Modifier 'synchronized' not allowed here } static synchronized void method2() { …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.