В лекции отметить, оригинальный исходный код нижеКак получить доступ к частной специализированной функции?
private val sort1 = {
val method = scala.util.Sorting.getClass.getDeclaredMethod(”sort1”, classOf[Array[Int]], classOf[Int], classOf[Int])
method.setAccessible(true)
(xs: Array[Int], offset: Int, len: Int) => {
method.invoke(scala.util.Sorting, xs, offset.asInstanceOf[AnyRef], len.asInstanceOf[AnyRef])
}
}
Но sort1 осуждается в текущей версии Scala.
Итак, вместо этого я хочу использовать insertionSort.
src/library/scala/util/Sorting.scala
private def insertionSort[@specialized T](a: Array[T], i0: Int, iN: Int, ord: Ordering[T]): Unit = {
...
}
Возможно ли это?
Зачем кому-то нужен такой хак? Мне кажется, что я нарушаю принципы API – cchantep
Что вы пытаетесь сделать точно? – Dima
Мне просто интересно, можно ли и как. Теперь я знал, что правильная подпись указана в файле Sorting $ .class. Я очень новичок в scala или java, я этого не знал. – newpolaris