java.util.Arrays.toStringメソッドはScalaの文字列に対してオーバーロードされません

agilesteel

私は2010年からScalaでプログラミングを行っており(現在は2017年の終わりです)、java.util.Arrays.toStringメソッドがStringsに対してオーバーロードされていないことを知り、今日ショックを受けました以下はJavaでは期待どおりに機能しますが、Scalaでは機能しません。

Java

public class Main {
  public static void main(String[] args) {
    System.out.println(java.util.Arrays.toString(args));
  }
}

Scala

object Main {
  def main(args: Array[String]): Unit = {
    println(java.util.Arrays.toString(args))
  }
}

私はこれに対する多くの回避策を知っています(したがって、提案する必要はありません)が、そもそもそれは必要ないと思います。これが長年のバグ(または未完成の機能)であるとは想像できません。また、この動作が意図されているとは想像できません。

<console>:12: error: overloaded method value toString with alternatives:
  (x$1: Array[Object])String <and>
  (x$1: Array[Double])String <and>
  (x$1: Array[Float])String <and>
  (x$1: Array[Boolean])String <and>
  (x$1: Array[Byte])String <and>
  (x$1: Array[Char])String <and>
  (x$1: Array[Short])String <and>
  (x$1: Array[Int])String <and>
  (x$1: Array[Long])String
 cannot be applied to (Array[String])

誰かがこれが機能しない理由を合理的に説明できますか?生意気なことはしないでください。sのためにオーバーロードされていないようですStringが、Javaには明らかにハックがあり、それを機能させるために、Scalaに何もないのはなぜですか?

この質問を見つけましたが、Javaでも機能しますが、Scalaでは機能しないのはなぜですか?

PS

それは重要ではありませんが、私は得ました:

  • Scala v2.12.4
  • Java v1.8.0_151
ディマ

それが機能するのは実際にはJavaのバグです。候補者のリストを見ると、明らかに適切な代替手段がないことがわかります。Array[Object]誤ってバリアントを呼び出すことになりますが、それは間違っています。なぜならArray、その型パラメーターは不変であるため(すべてのジェネリック型は、Javaでは不変です)、のスーパークラスでArray[Object]はありませんArray[String]

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

Java 8の新しいjava.util.Arraysメソッドがすべてのプリミティブ型に対してオーバーロードされないのはなぜですか?

分類Dev

なぜjava.util.ArraysのbinarySearch()メソッドは、ループを使用して実装されていますか?

分類Dev

クラスjava.util.Arrays $ ArrayListの階層内の名前ストリームに一致するメソッドはありません

分類Dev

JAVAでJiraペイロードにアクセスできません(java.util.Arrays $ ArrayList)

分類Dev

java.lang.ClassCastException:java.util.Arrays $ ArrayListはjava.util.ArrayListにキャストできません

分類Dev

java.util.Arrays.asList removeIfで使用UnsupportedOperationExceptionをスロー

分類Dev

java.util。*としてインポートされたときにそのメソッドを認識しませんUbuntuのLinkedListの場合

分類Dev

java.util.Arrays.toStringの静的インポートを使用する方法

分類Dev

例外を引き起こすArrays.asListのキャスト:java.util.Arrays $ ArrayListはjava.util.ArrayListにキャストできません

分類Dev

java.util.Arrays.asList(T ...)はどのように機能しますか?

分類Dev

java.util.Arrays.asList(T ...)はどのように機能しますか?

分類Dev

Apache Beam-org.apache.beam.sdk.util.UserCodeException:java.sql.SQLException:PoolableConnectionFactoryを作成できません(メソッドはサポートされていません)

分類Dev

Scalaでは、java.util.Mapを取るメソッドをオーバーライドする方法

分類Dev

contains()メソッドがJavaのArrays.asListに対して機能していません

分類Dev

java.util.Arrays内にArrayList宣言があるのはなぜですか

分類Dev

java.lang.ClassCastException:java.util.Arrays $ ArrayListをjava.lang.Integerにキャストできません

分類Dev

import文(輸入java.util.Arrays)のないJavaで配列(少しa)の仕事、これはなぜですか?

分類Dev

Java:オーバーライドされたメソッドは「java.lang.Throwable」をスローしません

分類Dev

java.lang.RuntimeException:android.util.Logのメソッドiがモックされていません

分類Dev

scala.collections.javaconverters._エラー:値マップはjava.util.Setのメンバーではありません

分類Dev

java.util.Dateはサポートされていません

分類Dev

スキャナーを複数回呼び出しているときに例外がスローされました。「スレッドのメインでの例外」java.util.NoSuchElementException:行が見つかりません

分類Dev

java.util.Listスレッドセーフのメソッドが含まれていますか?

分類Dev

java.lang.ClassCastExceptionが:java.util.Arrays $ ArrayListのDAOにはjava.lang.Integerにキャストすることはできません

分類Dev

Java Generics名の衝突、メソッドが正しくオーバーライドされていません

分類Dev

GuavaのImmutableSetメンバーシップメソッドはjava.util.HashSet#containsを模倣していますか?

分類Dev

メソッドのシグニチャーはありません:java.util.Date.parse()は引数タイプに適用できます

分類Dev

java.util.hashMapのinitメソッド

分類Dev

java.util.concurrent.LinkedBlockingQueue putメソッドは、Scalaの引数としてNothingを必要とします

Related 関連記事

  1. 1

    Java 8の新しいjava.util.Arraysメソッドがすべてのプリミティブ型に対してオーバーロードされないのはなぜですか?

  2. 2

    なぜjava.util.ArraysのbinarySearch()メソッドは、ループを使用して実装されていますか?

  3. 3

    クラスjava.util.Arrays $ ArrayListの階層内の名前ストリームに一致するメソッドはありません

  4. 4

    JAVAでJiraペイロードにアクセスできません(java.util.Arrays $ ArrayList)

  5. 5

    java.lang.ClassCastException:java.util.Arrays $ ArrayListはjava.util.ArrayListにキャストできません

  6. 6

    java.util.Arrays.asList removeIfで使用UnsupportedOperationExceptionをスロー

  7. 7

    java.util。*としてインポートされたときにそのメソッドを認識しませんUbuntuのLinkedListの場合

  8. 8

    java.util.Arrays.toStringの静的インポートを使用する方法

  9. 9

    例外を引き起こすArrays.asListのキャスト:java.util.Arrays $ ArrayListはjava.util.ArrayListにキャストできません

  10. 10

    java.util.Arrays.asList(T ...)はどのように機能しますか?

  11. 11

    java.util.Arrays.asList(T ...)はどのように機能しますか?

  12. 12

    Apache Beam-org.apache.beam.sdk.util.UserCodeException:java.sql.SQLException:PoolableConnectionFactoryを作成できません(メソッドはサポートされていません)

  13. 13

    Scalaでは、java.util.Mapを取るメソッドをオーバーライドする方法

  14. 14

    contains()メソッドがJavaのArrays.asListに対して機能していません

  15. 15

    java.util.Arrays内にArrayList宣言があるのはなぜですか

  16. 16

    java.lang.ClassCastException:java.util.Arrays $ ArrayListをjava.lang.Integerにキャストできません

  17. 17

    import文(輸入java.util.Arrays)のないJavaで配列(少しa)の仕事、これはなぜですか?

  18. 18

    Java:オーバーライドされたメソッドは「java.lang.Throwable」をスローしません

  19. 19

    java.lang.RuntimeException:android.util.Logのメソッドiがモックされていません

  20. 20

    scala.collections.javaconverters._エラー:値マップはjava.util.Setのメンバーではありません

  21. 21

    java.util.Dateはサポートされていません

  22. 22

    スキャナーを複数回呼び出しているときに例外がスローされました。「スレッドのメインでの例外」java.util.NoSuchElementException:行が見つかりません

  23. 23

    java.util.Listスレッドセーフのメソッドが含まれていますか?

  24. 24

    java.lang.ClassCastExceptionが:java.util.Arrays $ ArrayListのDAOにはjava.lang.Integerにキャストすることはできません

  25. 25

    Java Generics名の衝突、メソッドが正しくオーバーライドされていません

  26. 26

    GuavaのImmutableSetメンバーシップメソッドはjava.util.HashSet#containsを模倣していますか?

  27. 27

    メソッドのシグニチャーはありません:java.util.Date.parse()は引数タイプに適用できます

  28. 28

    java.util.hashMapのinitメソッド

  29. 29

    java.util.concurrent.LinkedBlockingQueue putメソッドは、Scalaの引数としてNothingを必要とします

ホットタグ

アーカイブ