IntelliJ IDEA 2026.1 Help

Scalaでトレイトを抽出する

トレイトを抽出 リファクタリングを使用すると、選択したメンバーを Scala クラス、オブジェクト、トレイトから新しいトレイトに抽出できます。 IntelliJ IDEA は defvalvar タイプのメンバーをサポートします。

トレイトを抽出する

  1. エディターで、リファクタリングするコードメンバーを選択します。

  2. メインメニューで リファクタリング | 抽出 | トレイト へ移動します。

    または、エディターの任意の場所を右クリックしてコンテキストメニューを開き、 リファクタリング | トレイト を選択します。

  3. 表示されるダイアログで、新しいトレイト名を入力し、抽出したいメンバーを選択します。

    抽出するメンバー セクションにリストされているすべてのメンバーを選択する必要がある場合は、最初に Ctrl+A を押してから Space を押します。

    抽出トレイトダイアログ

    をクリックして リファクタリング します。

サンプル

いくつかのメソッドを持つ Calculator クラスを作成し、メソッドの 1 つ(mul )をトレイトに抽出しましょう。

class Calculator { def add(a: Int, b: Int): Int = a + b def mul(a: Int, b: Int): Int = a match { case 0 =>0 case _ => add(b, mul(a-1, b)) } }
trait Multiplier { this: Calculator => def mul(a: Int, b: Int): Int = a match { case 0 => 0 case _ => add(b, mul(a - 1, b)) } }
class Calculator extends Multiplier { def add(a: Int, b: Int): Int = a + b }

IntelliJ IDEA は、定義本体とともに mul メソッドを含む新しいトレイト Multiplier を作成します。 クラス Calculator は、トレイト Multiplier を拡張します。

トレイト抽出ダイアログのリファレンス

項目

説明

トレイトを抽出する

このフィールドには、メンバーを抽出しようとしているクラス、オブジェクト、トレイトの名前が含まれています。

トレイト名

このフィールドを使用して、新しいトレイトの名前を入力します。

トレイトのパッケージ

このフィールドを使用して、新しく作成されたトレイトのパッケージを追加します。 元のクラス、オブジェクト、抽出元のトレイトと同じパッケージを使用することをお勧めします。

抽出するメンバー

この領域を使用して、抽出するメンバーを選択します。

抽象として抽出チェックボックスが選択されている場合、新しいトレイトには定義本体のない宣言のみが含まれます。 例: このような場合、ボディを含まない抽象メソッドは元のクラスでオーバーライドされ、定義はそこに残されます。

このチェックボックスが選択されていない場合、メソッドは のように定義された新しいトレイトに移動します。

2026 年 3 月 30 日