小编Jxt*_*tps的帖子

是否有理由在Java的String.replace上使用Scala的StringLike.replaceAllLiterally?

Scala的StringLike有这个方法 replaceAllLiterally(literal: String, replacement: String): String

这似乎与使用该方法的Java的String非常相似String replace(CharSequence target, CharSequence replacement).

是否有理由使用Scala版本?

(不进行正则表达式编译步骤似乎可以使Java的版本更快,但我还没有对其进行基准测试)

java scala

11
推荐指数
1
解决办法
3077
查看次数

Java尝试终极竞争条件?

许多Java资源使用示例如下所示:

Resource r = openResource(); 
try { 
  // use resource
} finally { 
  r.close();
}
Run Code Online (Sandbox Code Playgroud)

声明r必须在try-clause 之外才能在finally-clause中显示,但这也使得它看起来像是一个潜在的竞争条件:如果在openResource()-call和进入try-clause 之间存在线程中断怎么办?

这是否意味着在该场景中资源实际上并未关闭?

或者Java是否保证try-finally封面r"完全",尽管语法看起来不像?

或者我必须写:

Resource r = null;  
try { 
  r = openResource();
  // use resource
} finally { 
  if (r != null) r.close();
}
Run Code Online (Sandbox Code Playgroud)

为了防止线程中断?

java exception-handling thread-safety race-condition

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

aws ec2 describe-instances:如何过滤 *out* 现场实例?

我可以通过发出以下 CLI 命令列出我的所有 Spot 实例:

aws ec2 describe-instances --filter Name="instance-lifecycle",Values="spot"
Run Code Online (Sandbox Code Playgroud)

但是我怎样才能显示我所有的not Spot 实例呢?这些都不起作用:

aws ec2 describe-instances --filter Name="instance-lifecycle",Values=""
aws ec2 describe-instances --filter Name="instance-lifecycle",Values="?"
Run Code Online (Sandbox Code Playgroud)

instance-lifecycle对于非 Spot 实例, 为空 / null,对于spot-instance-request-id

command-line-interface amazon-ec2 amazon-web-services

6
推荐指数
2
解决办法
2127
查看次数

如何在SBT(Play)多项目中使用共享配置?

我有几个SBT 0.13/Play 2.2项目(网站).它们都是多模块,因为它们共享一些共同的功能.这使得他们的项目配置文件既复杂又几乎相同,但并不完全相同.

我希望能够在项目中尽可能多地共享这些配置文件(频繁的播放更新使得5个以上的网站保持最新的王室痛苦,更不用说所有几乎完全相同但不断发展的依赖列表项目).

build.properties和plugins.sbt在各个项目中是相同的,可以通过简单的脚本覆盖.大.

Build.scala比较棘手 - 我想介绍一个像这样的共享基类:

abstract class MyBuildBase extends Build { ... }
Run Code Online (Sandbox Code Playgroud)

在Build.scala中:

object ApplicationBuild extends MyBuildBuild { ... }
Run Code Online (Sandbox Code Playgroud)

为了使其具有任何意义,需要跨项目共享MyBuildBase.scala.这可以通过svn:external来完成,它在目录上运行.这意味着我需要在编译Build.scala时以某种方式使这个共享目录可访问(否则sbt会大声抱怨).

阅读http://www.scala-sbt.org/0.13.0/docs/Detailed-Topics/Classpaths.htmlhttp://www.scala-sbt.org/0.13.0/docs/Getting-Started/Full -Def.html似乎这应该是可能的.

然而,这是非常不清楚我居然把什么项目/工程/ Build.scala文件实际上做到这一点-我无法找到的一个例子"这是旨在建立一个SBT构建文件和包括SBT构建文件构建中的一些额外的源文件".

有什么建议?

scala sbt playframework playframework-2.2

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

确定Any实际上是scala枚举值

我有一个字符串格式化函数fmt(v:Any): String,需要根据运行时类型执行不同的操作v.所以它看起来像:

def fmt(v:Any): String = {
  v match {
    case a: Int => "Int: " + a
    case a: String => "\"" + a + "\""
    case a => throw new IllegalArgumentException(s"??? '$a', ${a.getClass.getCanonicalName}?!")
  }
}
Run Code Online (Sandbox Code Playgroud)

IllegalArgumentException("??? 'myVal', scala.Enumeration.Val?!")当我传入scala枚举值时抛出一个.但是,添加一个

case a: scala.Enumeration.Val => "Hello enum"
Run Code Online (Sandbox Code Playgroud)

不编译:object枚举不是包scala的成员注意:class Enumeration存在,但它没有伴随对象.

如何检测传入的实例是否为scala枚举值?

if (a.getClass.getCanonicalName == "scala.Enumeration.Val") 应该工作,但感觉就像一个黑客 - 是否有任何实际类型模式匹配我可以做?

enums scala

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