Scala、F-Boundedpolymorphismが期待どおりに機能しない

ライアン・スタル

IpAddressesに関連する次のクラスがあります。IpAddressの各サブタイプはそれ自体とのみ比較できるように強制したかったので、この方法でIpAddressを定義しました。つまり、Ipv4をIpv6と比較するのは無意味です。

sealed trait IpAddress[T <: IpAddress[T]] extends Comparable[IpAddress[T]] {
  val address: Array[Byte]

  override def compareTo(that: IpAddress[T]): Int = ???
}

case class Ipv4Address(address: Array[Byte]) extends IpAddress[Ipv4Address]{
  assert(address.length == 4)
}

case class Ipv6Address(address: Array[Byte]) extends IpAddress[Ipv6Address]{
  assert(address.length == 16)
}

今、私は次のような別のコンテキストでIpAddressを使用しようとしています。

def doSomethingWithComparables[K <: Comparable[K]](k: K): Int = k.compareTo(k)

しかし、何らかの理由で、ここではIpAddressを使用できません。

doSomethingWithComparables(Ipv4Address(Array(0,0,0,0)))

このエラーが発生します:

Error: inferred type arguments [main.Main.Ipv4Address] do not conform to method doSomethingWithComparables's type parameter bounds [K <: Comparable[K]]

誰かがこれについて何か考えを持っていますか?

ティム

Fバインドされたクラスは、基本クラスではなくバインドされたクラスを比較するのではComparable[T]なく、拡張する必要がありますComparable[IpAddress[T]]

sealed trait IpAddress[T <: IpAddress[T]] extends Comparable[T] {
  val address: Array[Byte]

  override def compareTo(that: T): Int = ???
}

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

readlink-fが期待どおりに機能しない

分類Dev

Scalaタイプのタグが期待どおりに機能しない

分類Dev

Scala Stdin.readLine()が期待どおりに機能していないようです

分類Dev

Scalaで期待どおりに機能しないポリモーフィズム

分類Dev

Scalaの下限が期待どおりに動作しない

分類Dev

ScalaのREPL変数で期待どおりにポストおよびプレインクリメントが機能しない

分類Dev

PHPDocumentor `-d`は空のドキュメントになりますが、` -f`は期待どおりに機能しています

分類Dev

scalaの暗黙的なクラスが期待どおりに出力を表示しない

分類Dev

Scalaが期待どおりに実行されない

分類Dev

(f)期待どおりに動作しない

分類Dev

NSTaskが期待どおりに機能しない/期待される

分類Dev

Javascript機能が期待どおりに機能しない

分類Dev

LESS CSSExtend機能が期待どおりに機能しない

分類Dev

Azuresearchsearch.inの機能が期待どおりに機能しない

分類Dev

TypescriptnoImplicitAnyおよびnoImplicitReturnsが期待どおりに機能しない

分類Dev

onMouseEnterおよびonMouseLeaveが期待どおりに機能しない

分類Dev

Colspanが期待どおりに機能しない(CSSなし)

分類Dev

getAnnotations()が空であり、期待どおりに機能しない

分類Dev

RSpec割り当てが期待どおりに機能しない

分類Dev

再帰的な `setTimeout`が期待どおりに機能しない

分類Dev

透明な境界線-色が期待どおりに機能しない

分類Dev

透明な境界線-色が期待どおりに機能しない

分類Dev

観測可能な角度が期待どおりに機能しない

分類Dev

__弱い自己が期待どおりに機能しない

分類Dev

ぼかしが期待どおりに機能しない

分類Dev

安心したjsonpathfindAllが期待どおりに機能しない

分類Dev

Sedコマンドが期待どおりに機能しない

分類Dev

db.changeVersionが期待どおりに機能しない

分類Dev

python subprocess.call()が期待どおりに機能しない

Related 関連記事

  1. 1

    readlink-fが期待どおりに機能しない

  2. 2

    Scalaタイプのタグが期待どおりに機能しない

  3. 3

    Scala Stdin.readLine()が期待どおりに機能していないようです

  4. 4

    Scalaで期待どおりに機能しないポリモーフィズム

  5. 5

    Scalaの下限が期待どおりに動作しない

  6. 6

    ScalaのREPL変数で期待どおりにポストおよびプレインクリメントが機能しない

  7. 7

    PHPDocumentor `-d`は空のドキュメントになりますが、` -f`は期待どおりに機能しています

  8. 8

    scalaの暗黙的なクラスが期待どおりに出力を表示しない

  9. 9

    Scalaが期待どおりに実行されない

  10. 10

    (f)期待どおりに動作しない

  11. 11

    NSTaskが期待どおりに機能しない/期待される

  12. 12

    Javascript機能が期待どおりに機能しない

  13. 13

    LESS CSSExtend機能が期待どおりに機能しない

  14. 14

    Azuresearchsearch.inの機能が期待どおりに機能しない

  15. 15

    TypescriptnoImplicitAnyおよびnoImplicitReturnsが期待どおりに機能しない

  16. 16

    onMouseEnterおよびonMouseLeaveが期待どおりに機能しない

  17. 17

    Colspanが期待どおりに機能しない(CSSなし)

  18. 18

    getAnnotations()が空であり、期待どおりに機能しない

  19. 19

    RSpec割り当てが期待どおりに機能しない

  20. 20

    再帰的な `setTimeout`が期待どおりに機能しない

  21. 21

    透明な境界線-色が期待どおりに機能しない

  22. 22

    透明な境界線-色が期待どおりに機能しない

  23. 23

    観測可能な角度が期待どおりに機能しない

  24. 24

    __弱い自己が期待どおりに機能しない

  25. 25

    ぼかしが期待どおりに機能しない

  26. 26

    安心したjsonpathfindAllが期待どおりに機能しない

  27. 27

    Sedコマンドが期待どおりに機能しない

  28. 28

    db.changeVersionが期待どおりに機能しない

  29. 29

    python subprocess.call()が期待どおりに機能しない

ホットタグ

アーカイブ