问题内容: 我正在使用REPL用Scala数组调用Java vararg方法。 如果执行此操作,则会出现错误: 但是,如果我这样做,那就行得通: 我的问题是怎么办?Scala API在哪里定义? 问题答案: 添加告诉编译器将数组视为varargs。Scala与Java的工作原理相同。如果我有方法 我可以这样称呼它: 但是,如果我想向其传递实际的序列(与一样),我会这样做:
问题内容: 例如我有以下代码 并引发异常 我不在乎是否未读取某些行,但是如何跳过无效字符并继续读取行? 问题答案: 您可以通过调用来影响字符集解码处理无效输入的方式。 通常, 您永远不会直接看到对象,因为它将在后台为您创建。因此,如果需要访问它,则需要使用API,该API允许您直接指定(而不是仅编码名称或)。 此类API的最基本示例是: 请注意,此代码使用了Java 7类,对于早期版本,你可以
问题内容: 我正在学习Scala,并好奇是否有可能: 创建一个在Scala中实现Java接口的对象 将对象编译成类文件并将其打包 使用Java中的对象 我想在Scala中实现自定义Lucene查询解析器,并能够让其他人从Java应用程序访问它。 问题答案: 我假设“对象”实际上是“类”。无论如何,答案是肯定的,您可以这样做。如果您希望所有这些都在同一项目中,则需要利用Scala / Java联合编
问题内容: 我发现有很多人试图这样做,并对此进行了询问,但始终会使用scala代码来回答问题。我需要调用一个需要scala.collection.immutable.Map的API,但是我有一个java.util.Map,如何在我的Java代码中将后者从后者转换为前者?编译器不同意这种说法是一种隐式转换,因为当我尝试它时会否定它! 谢谢! 问题答案: 获取不可变的Scala映射有些棘手,因为col
问题内容: Scala与Java的静态块等效吗? 问题答案: 伴随对象的构造函数(即主体)中的代码与Java类的静态初始化程序块中的代码 不 完全相同。在下面的示例中,我创建了A的实例,但是没有发生初始化。 要在创建类的第一个实例时触发伴随对象的构造,可以从类构造函数中访问它。 在许多情况下,差异并不重要。但是,如果您要发射导弹(或其他副作用),您可能会在意!
问题内容: 我正在尝试在CometActor中检索url参数,以验证数据源是否与目的地匹配,例如,某个用户从A室发送一条消息,该消息仅在A室而不是B室或C室中接收和显示。 我试过了: 但是它总是空的,可以做到吗?还是有另一种方法可以阻止Comet消息到达不应该去的地方? 在此先感谢您的帮助,非常感谢:) 问题答案: CometActor存在于会话之外,因此无权访问(大部分)会话。解决方案是使用包含
问题内容: 我正在使用JavaConverters将Java SortedSet转换为Vector。 我的getInstructions函数返回java.lang.Long的ArrayList,但是使用代码需要Scala.Long。有没有一种方法可以在不将所有使用代码都更改为使用Java.lang.Long的情况下进行操作? 此外,是否有一种方法可以对值类进行隐式转换,以允许对ArrayList的
主要内容:实例,从屏幕上读取用户输入,实例,从文件上读取内容,实例Scala 进行文件写操作,直接用的都是 java中 的 I/O 类 (java.io.File): 实例 import java. io. _ object Test { def main (args : Array [String ] ) { val writer = new PrintWriter ( new File ( "test.txt" ) ) wri
主要内容:实例,提取器使用模式匹配,实例提取器是从传递给它的对象中提取出构造该对象的参数。 Scala 标准库包含了一些预定义的提取器,我们会大致的了解一下它们。 Scala 提取器是一个带有unapply方法的对象。unapply方法算是apply方法的反向操作:unapply接受一个对象,然后从对象中提取值,提取的值通常是用来构造该对象的值。 以下实例演示了邮件地址的提取器对象: 实例 object Test { def m
主要内容:抛出异常,捕获异常,实例,finally 语句,实例Scala 的异常处理和其它语言比如 Java 类似。 Scala 的方法可以通过抛出异常的方法的方式来终止相关代码的运行,不必通过返回值。 抛出异常 Scala 抛出异常的方法和 Java一样,使用 throw 方法,例如,抛出一个新的参数异常: 捕获异常 异常捕捉的机制与其他语言中一样,如果有异常发生,catch 字句是按次序捕捉的。因此,在 catch 字句中,越具体的异常越要靠前,越普遍的
主要内容:实例,实例,实例,正则表达式,正则表达式实例,实例Scala 通过 scala.util.matching 包中的 Regex 类来支持正则表达式。以下实例演示了使用正则表达式查找单词 Scala : 实例 import scala. util. matching. Regex object Test { def main (args : Array [String ] ) { val pattern = "Scala". r
主要内容:实例,实例,使用样例类,实例Scala 提供了强大的模式匹配机制,应用也非常广泛。 一个模式匹配包含了一系列备选项,每个都开始于关键字 case。每个备选项都包含了一个模式及一到多个表达式。箭头符号 => 隔开了模式和表达式。 以下是一个简单的整型值模式匹配实例: 实例 object Test { def main (args : Array [String ] ) { println (matchTes
主要内容:实例,实例,特征构造顺序Scala Trait(特征) 相当于 Java 的接口,实际上它比接口还功能强大。 与接口不同的是,它还可以定义属性和方法的实现。 一般情况下Scala的类只能够继承单一父类,但是如果是 Trait(特征) 的话就可以继承多个,从结果来看就是实现了多重继承。 Trait(特征) 定义的方式与类类似,但它使用的关键字是 trait,如下所示: 实例 trait Equal { def isEq
主要内容:实例,实例,Scala 继承,实例,实例,实例,Scala 单例对象,实例,实例类是对象的抽象,而对象是类的具体实例。类是抽象的,不占用内存,而对象是具体的,占用存储空间。类是用于创建对象的蓝图,它是一个定义包括在特定类型的对象中的方法和变量的软件模板。 我们可以使用 new 关键字来创建类的对象,实例如下: 实例 class Point (xc : Int, yc : Int ) { var x : Int = xc var y : Int = yc
主要内容:实例,查找最大与最小元素,实例,获取迭代器的长度,实例,Scala Iterator 常用方法Scala 集合 Scala Iterator(迭代器)不是一个集合,它是一种用于访问集合的方法。 迭代器 it 的两个基本操作是 next 和 hasNext。 调用 it.next() 会返回迭代器的下一个元素,并且更新迭代器的状态。 调用 it.hasNext() 用于检测集合中是否还有元素。 让迭代器 it 逐个返回所有元素最简单的方法是使用 while 循环: 实例 object T