[解決済み] Scala 無名クラスでextendsを使用する方法
2022-02-14 22:10:14
質問
ScalaでAnonymousクラスから別のクラスを拡張する方法はありますか?つまり、以下のようなものです。
abstract class Salutation {
def saybye(): String = "Bye"
}
class anotherClass() {
def dummyFunction() = {
val hello = new {
def sayhello(): String = "hello"
} extends Salutation
val hi = hello.sayhello //hi value is "Hello"
val bye = hello.saybye //bye value is "bye"
}
}
解決方法は?
うん、Javaとほとんど同じに見えるね。
abstract class Salutation {
def saybye: String = "Bye"
}
val hello = new Salutation {
def sayhello: String = "hello"
}
val hi = hello.sayhello
val bye = hello.saybye
もし
Salutation
は、抽象クラスやトレイトで
sayhello
メソッドに同じシグネチャがあれば、実装を提供したことになります。そうでなければ、無名構造型のインスタンスを作成したことになります。
hello: Salutation{def sayhello: String}
を呼び出すことに注意してください。
sayhello
そのため、このメソッドを多用する場合は、新しい trait または class を定義する必要があります。
関連
-
[解決済み] TimeoutExceptionが発生した場合、どのような原因が考えられるでしょうか。Sparkで作業しているときに[n秒]後にFuturesがタイムアウトしました[重複]。
-
[解決済み] scalaのforeachループ
-
[解決済み] Scalaのオブジェクトとクラスの違い
-
[解決済み】Scalaの「リフティング」とは何ですか?
-
[解決済み】Scala 2.8 breakOut
-
[解決済み】Scalaでケースクラスのインスタンスをクローンして、1つのフィールドだけを変更するにはどうすればよいですか?
-
[解決済み] マクロから匿名クラスのメソッドを持つ構造型を取得する
-
[解決済み] Scala:1ステートメントで文字列をファイルに書き込む
-
[解決済み] Scalaの==と.equalsの違いは何ですか?
-
[解決済み] Javaでnull-returnするメソッドをScalaのOptionでラップする?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Scalaでswitch/case(単純なパターンマッチ)を使うには?
-
[解決済み] スパークSPLラウンド&ブラウンド
-
[解決済み] ScalaのDSLって何?[クローズド]
-
[解決済み] Spark - CSVファイルをDataFrameとして読み込む?
-
[解決済み】関数を定義する "def "と "val "の違いとは?
-
[解決済み】良いスカラズの紹介【終了しました
-
[解決済み】ScalaでVectorを選択するのはどんなとき?
-
[解決済み】Scalaのyieldとは何ですか?
-
[解決済み】Scala 2.8における<:<、<%<、=:=の意味と、それらのドキュメントはどこにあるのか?
-
[解決済み】ScalaのJavaConvertersとJavaConversionsの違いは何ですか?