shapelessを使用してscalaでパラメーター化されたクラスの名前を取得する

ベン

シェイプレスを使用して、関数にパラメーターとして渡されるクラスの名前を取得したいと思います。私はこれを試しました:

def sayMyName[T](t: T): String = Typeable[T].describe // error: class type required but T found

Tコンクリートタイプに交換すれば問題ありません。シェイプレスを使ってこのような作品を作ることは可能ですか?

KrzysztofAtłasik

Typeableタイプのコンテキストバウンドとしてtypeclassを追加する必要がありますT

def sayMyName[T: Typeable](t: T): String = Typeable[T].describe

sayMyName("") //String

暗黙的なパラメータを明示的に宣言することもできます。

def sayMyName[T](t: T)(implicit typeable: Typeable[T]): String = Typeable[T].describe

コンテキストバウンドを追加することにより、コンパイラに、具体的な型で呼び出されるTypeable
までsayMyNameクラスの解決を待つように要求します。すぐには解決しません(Tの実際の型は現時点ではまだわからないため、不可能です)。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Scalaでカリー化された関数で名前付きパラメーターを使用する方法

分類Dev

shapeless.Genericを使用する場合、エラーを回避する方法 'パラメーターが名前で宣言されていない限り、スーパーコンストラクターに自己参照を渡すことはできません'?

分類Dev

パラメーター化されたクエリを使用して、名前で列を検索するにはどうすればよいですか?

分類Dev

型パラメーターとしてパラメーター化されたTypeScriptクラスを使用する

分類Dev

ラムダを使用してパラメーターとして送信されたプロパティの名前を取得する方法

分類Dev

pytestでパラメーター化されたテストの名前を変更する

分類Dev

パラメータ化されたクラスの型引数を取得する

分類Dev

ファイルの宣言されたパス内でパラメーターの名前を使用する方法-java

分類Dev

パラメータ化されたクラスをiBATISのresultClassとして使用する方法

分類Dev

Scalaで継承された型を使用して関数をパラメーター化する方法

分類Dev

名前付きパラメーターを使用したネイティブクエリが「すべての名前付きパラメーターが設定されているわけではありません」で失敗する

分類Dev

Scalaのパラメーター化された型を介して暗黙のval / defを取得するにはどうすればよいですか?

分類Dev

パラメータ化されたクエリを使用して、OldDbを使用するAccessでスケール2の数値型の列を追加します

分類Dev

指定された名前付きパラメーターを使用してパラメーターセットを解決することはできません

分類Dev

Gsonを使用して、パラメーター化されたコンストラクターを使用してJsonをJavaクラスにロードする

分類Dev

LiveData <I>クラスの具体化された型パラメーターとして「I」を使用するにはどうすればよいですか?

分類Dev

関数パラメーターとして渡された変数の名前を取得します

分類Dev

PowershellのCMDのパラメーターとして暗号化されたパスワードを使用する

分類Dev

grunt.task.run(taskname)を使用してパラメーター化されたタスクを実行する

分類Dev

名前が文字列変数で定義されているクラスで既知の関数(パラメーターを使用)を呼び出す

分類Dev

複数のクラスでジェネリック/パラメーター化されたJavaを使用する

分類Dev

名前にクラスを使用したパラメータ化クラスの生の使用

分類Dev

IntelliJIDEAで提供された引数に対してメソッドまたはコンストラクターのパラメーター名を生成する方法

分類Dev

Shapelessを使用して、ケースクラス要素を含む任意にネストされたタプルをフラット化する

分類Dev

パラメータ化されたクラスのクラスを取得する方法

分類Dev

パラメータ化されたクラスパラメータのタイプを取得していますか?

分類Dev

ngForから値を取得して、ネストされた形式のパラメーターとして使用する

分類Dev

Scala / Javaメソッドでリフレクションを介してパラメーターの名前と型を取得する方法は?

分類Dev

パラメータ化されたクエリを使用してSSRSでサブクエリを実行する

Related 関連記事

  1. 1

    Scalaでカリー化された関数で名前付きパラメーターを使用する方法

  2. 2

    shapeless.Genericを使用する場合、エラーを回避する方法 'パラメーターが名前で宣言されていない限り、スーパーコンストラクターに自己参照を渡すことはできません'?

  3. 3

    パラメーター化されたクエリを使用して、名前で列を検索するにはどうすればよいですか?

  4. 4

    型パラメーターとしてパラメーター化されたTypeScriptクラスを使用する

  5. 5

    ラムダを使用してパラメーターとして送信されたプロパティの名前を取得する方法

  6. 6

    pytestでパラメーター化されたテストの名前を変更する

  7. 7

    パラメータ化されたクラスの型引数を取得する

  8. 8

    ファイルの宣言されたパス内でパラメーターの名前を使用する方法-java

  9. 9

    パラメータ化されたクラスをiBATISのresultClassとして使用する方法

  10. 10

    Scalaで継承された型を使用して関数をパラメーター化する方法

  11. 11

    名前付きパラメーターを使用したネイティブクエリが「すべての名前付きパラメーターが設定されているわけではありません」で失敗する

  12. 12

    Scalaのパラメーター化された型を介して暗黙のval / defを取得するにはどうすればよいですか?

  13. 13

    パラメータ化されたクエリを使用して、OldDbを使用するAccessでスケール2の数値型の列を追加します

  14. 14

    指定された名前付きパラメーターを使用してパラメーターセットを解決することはできません

  15. 15

    Gsonを使用して、パラメーター化されたコンストラクターを使用してJsonをJavaクラスにロードする

  16. 16

    LiveData <I>クラスの具体化された型パラメーターとして「I」を使用するにはどうすればよいですか?

  17. 17

    関数パラメーターとして渡された変数の名前を取得します

  18. 18

    PowershellのCMDのパラメーターとして暗号化されたパスワードを使用する

  19. 19

    grunt.task.run(taskname)を使用してパラメーター化されたタスクを実行する

  20. 20

    名前が文字列変数で定義されているクラスで既知の関数(パラメーターを使用)を呼び出す

  21. 21

    複数のクラスでジェネリック/パラメーター化されたJavaを使用する

  22. 22

    名前にクラスを使用したパラメータ化クラスの生の使用

  23. 23

    IntelliJIDEAで提供された引数に対してメソッドまたはコンストラクターのパラメーター名を生成する方法

  24. 24

    Shapelessを使用して、ケースクラス要素を含む任意にネストされたタプルをフラット化する

  25. 25

    パラメータ化されたクラスのクラスを取得する方法

  26. 26

    パラメータ化されたクラスパラメータのタイプを取得していますか?

  27. 27

    ngForから値を取得して、ネストされた形式のパラメーターとして使用する

  28. 28

    Scala / Javaメソッドでリフレクションを介してパラメーターの名前と型を取得する方法は?

  29. 29

    パラメータ化されたクエリを使用してSSRSでサブクエリを実行する

ホットタグ

アーカイブ