小编dee*_*imo的帖子

从现有源创建新项目时,Eclipse"无效的项目描述"

我正在尝试从现有源代码创建一个新项目.我不断收到以下错误:"无效的项目描述",项目路径"重叠另一个项目的位置"具有相同的名称.原因是我之前从源代码创建了该项目,但之后我删除了该项目并删除了整个目录,然后再次添加源代码目录.我尝试过清洁和重新启动等所有功能,但没有任何效果.我查看了我的工作区目录,但旧项目没有任何痕迹.围绕这个问题有几个问题,比如这个尝试Android记事本教程 - 练习1 - 更多问题,但没有一个答案对我有用!

eclipse android

245
推荐指数
5
解决办法
17万
查看次数

Scala Collection对sort,sortWith和sortBy Performance进行了排序

斯卡拉包括在标准库的几种方法进行分类的列表,例如对列表进行排序列表,可以使用:

list.sorted
list.sortWith(_<_)
list.sortBy(x=>x)
Run Code Online (Sandbox Code Playgroud)

虽然这些可能是对列表进行排序的最简单方法,但我发现对于较大的列表,它们具有显着的性能缺陷.

例如,要排序一百万个整数,排序平均需要500毫秒,而sortWith和sortBy需要大约700毫秒.这与scala.util.Sorting.quickSort(需要大约120ms)和java.util.Arrays.sort(需要大约100ms)进行比较.对于较大的列表,随着我们进一步扩展,会观察到这种多因素差异.模式如下图所示.

各种Scala排序方法的性能

这种性能滞后的原因是什么?为什么标准方法没有使用更有效的算法/实现?

sorting collections performance scala list

17
推荐指数
1
解决办法
6788
查看次数

在同一个src下为不同的主类分开的jar

在同一源树下使用sbt为多个主类生成单独的jar文件的最佳方法是什么?

项目目录看起来像这样:

project_root/
        src/main/scala/
                     A/*.scala files for main class A
                     B/*.scala files for main class B
                 resources/
            test/scala/
                     A/
                     B/
        lib/
        project/Build.scala
        build.sbt   
Run Code Online (Sandbox Code Playgroud)

请注意,A和B都具有相同的基数.Build.scala文件的具体示例会很有帮助.

scala jar build sbt

7
推荐指数
1
解决办法
720
查看次数

Akka期货例外

当未来的演员抛出异常时会发生什么?

根据http://doc.akka.io/docs/akka/snapshot/scala/futures.html上的Akka文档:

如果Actor或调度程序正在完成Future,则无关紧要,如果捕获到Exception,则Future将包含它而不是有效结果.如果Future确实包含Exception,则调用Await.result将导致它再次被抛出,以便可以正确处理它.

在运行这段代码时,我不确定这是我所看到的:

  class Worker extends Actor {
    def receive = {
      case i: Int => throw new RuntimeException
    }         
  }

  implicit val system = ActorSystem("MySystem")
  val worker = system.actorOf(Props(new Worker), name="worker")
  implicit val timeout = Timeout(5 minutes)
  val future = worker ? 0
  val res = Await.result(future, 10 seconds)
Run Code Online (Sandbox Code Playgroud)

根据文档,Await.result应该再次抛出异常,但我得到的是TimeoutException!有人可以澄清一下吗?

scala exception-handling future exception akka

6
推荐指数
1
解决办法
3514
查看次数

覆盖Companion对象值和Scala MatchError

有人可以澄清为什么以下代码导致MatchError?在这种情况下,MatchError意味着什么?

class A {
  def g = A.f
}

object A {
  val f = "Object A"
}


class B extends A {
  override val A.f = "Object B"
}

val b = new B
b.g
Run Code Online (Sandbox Code Playgroud)

鉴于这不起作用,有没有办法覆盖与此类似的伴侣对象val或def?

oop overriding scala companion-object

5
推荐指数
1
解决办法
3228
查看次数

将java.util.LinkedHashMap转换为scala.collection.mutable.Map

import scala.collection.JavaConversions._
val m = new java.util.LinkedHashMap[String,Int]
val s: scala.collection.mutable.Map[String,Int] = m.asInstanceOf[scala.collection.mutable.Map[String,Int]]
Run Code Online (Sandbox Code Playgroud)

返回以下错误

java.lang.ClassCastException:java.util.LinkedHashMap无法强制转换为scala.collection.mutable.Map

这里有什么问题以及如何进行这种投射?我也试过scala.collection.JavaConverters._得到同样的错误.

scala scala-collections

5
推荐指数
2
解决办法
5875
查看次数

在Scala元组上迭代

在scala中,我们可以通过以下方式在元组上获得迭代器

val t = (1, 2)
val it = t.productIterator
Run Code Online (Sandbox Code Playgroud)

乃至

it.foreach( x => println(x.isInstanceOf[Int]) )
Run Code Online (Sandbox Code Playgroud)

返回true,因为不使用asInstanceOf [Int],我们无法对迭代器值执行简单的操作,因为

it.foreach( x => println(x+1) )
Run Code Online (Sandbox Code Playgroud)

返回错误:类型不匹配;找到:Int(1)必需:字符串

我了解Integer与Int的问题,但是isInstanceOf [Int]的有效性仍然有些令人困惑。

在元组上执行这些操作的最佳方法是什么?请注意,元组可以混合使用诸如整数和双精度之类的类型,因此转换为列表可能并不总是可行。

iterator scala scala-collections

0
推荐指数
1
解决办法
9745
查看次数