最有可能是重复,但我无法找到任何特定的.
public static void main(String[] args) {
System.out.println(
Arrays.asList(null, null, 1)
.stream()
.filter(obj -> obj == null)
.findAny()
.isPresent()
);
}
Run Code Online (Sandbox Code Playgroud)
至少应该工作(即返回false因为findAny返回Optional).
NullPointerException 被扔了
这是一个错误还是一个功能?
感谢您的意见和解释.
有没有人知道/解释为什么REPL在评估最后一个表达式时被卡住了?奇怪的是,它不会抛出任何异常或任何东西,只是没有任何反应.
Welcome to Scala version 2.11.6 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_40).
scala> val empty = Seq.empty[Int].iterator
empty: Iterator[Int] = empty iterator
scala> val emptyInfiniteIterator = Iterator.continually(empty).flatten
Run Code Online (Sandbox Code Playgroud)
提前感谢您的任何解释.
我需要从响应正文中解析一个 id 并将其发送到下一个请求正文中,以供基于会话的用户使用。如果有人对此有任何想法,请分享。
我已经使用了.check(regex())and.saveAs方法,但这会将数据保存在会话中,为此我需要进行我不想要的复杂解析。
让我们多次运行以下代码行:
Set(1,2,3,4,5,6,7).par.fold(0)(_ - _)
Run Code Online (Sandbox Code Playgroud)
结果非常有趣:
scala> Set(1,2,3,4,5,6,7).par.fold(0)(_ - _)
res10: Int = 8
scala> Set(1,2,3,4,5,6,7).par.fold(0)(_ - _)
res11: Int = 20
Run Code Online (Sandbox Code Playgroud)
但显然它应该像顺序版本一样:
scala> Set(1,2,3,4,5,6,7).fold(0)(_ - _)
res15: Int = -28
Run Code Online (Sandbox Code Playgroud)
我理解操作-对整数是非关联的,这就是这种行为背后的原因,但我的问题很简单:它不是意味着fold不应该在.par集合的实现中并行化吗?
是否可以在scala中为某些定义值类Numeric[T]?我试过这样的事情:
case class Inches[T <: Numeric[T]](value: T)(implicit num: Numeric[T]) extends AnyVal
Run Code Online (Sandbox Code Playgroud)
但是我得到了编译错误value classes can have only one parameter.
有没有办法绕过这个?
先谢谢.
在一些简单的scala编码练习中,我遇到了没有参数和构造函数参数重复的case类的意识形态问题.
这一切都始于以下两个非常简单的类:
trait Namespace
case class Reply[T](namespace: Namespace, correlation: String, data: Try[T])
abstract class Request(val namespace: Namespace, val id: String = UUID.randomUUID().toString) {
def success[T](data: T) = Reply(namespace, id, Try(data))
def failure(msg: String) = Reply(namespace, id, Failure(new RuntimeException(msg)))
}
Run Code Online (Sandbox Code Playgroud)
现在让我们假设我有一个实体Post,我想添加All类作为查询所有类型记录的命令Post.在我目前的设置中,实际编写以下内容会更容易:
case class All extends Request(Posts)
Run Code Online (Sandbox Code Playgroud)
但是在这种情况下,我得到编译器警告,不推荐使用不带参数的case类.所以有人可能建议将其重写为以下内容:
case object All extends Request(Posts)
Run Code Online (Sandbox Code Playgroud)
但是在这种情况下,对象All将仅与其id字段一起实例化一次,以避免每个请求具有唯一ID.
能否请您建议一种更好的表示All命令的方法,以便 …