Tag: scala java interop

使用带有Scala保留字的Java库

我正在使用Java( Selenium )编写的外部库。 其中一个函数调用具有签名type(String, String) ,并且在从Scala调用它时,我总是收到编译器错误,即: selenium.type("ab","abc") 有没有解决这个问题的方法?

使用Java的Scala:传递函数作为参数

考虑下面的Scala代码: package scala_java object MyScala { def setFunc(func: Int => String) { func(10) } } 现在在Java中,我希望使用MyScala作为: package scala_java; public class MyJava { public static void main(String [] args) { MyScala.setFunc(myFunc); // This line gives an error } public static String myFunc(int someInt) { return String.valueOf(someInt); } } 但是,上述不起作用(正如所料,因为Java不允许function编程)。 在Java中传递函数最简单的解决方法是什么? 我想要一个通用的解决scheme,可以处理具有任意数量参数的函数。 编辑:Java 8有比以下讨论的经典解决scheme更好的语法吗?

如何将java.util.List转换为Scala列表

我有这个错误的Scala方法。 无法转换成Scala列表。 def findAllQuestion():List[Question]={ questionDao.getAllQuestions() } types不匹配; 发现: java.util.List[com.aitrich.learnware.model.domain.entity.Question] required: scala.collection.immutable.List[com.aitrich.learnware.model.domain.entity.Question]

在Scala中迭代Java集合

我在写一些使用Apache POI API的Scala代码。 我想迭代包含在我从Sheet类中得到的java.util.Iterator的行。 我想在for each样式循环中使用迭代器,所以我一直在尝试将其转换为本地Scala集合,但不会运气。 我看了Scala包装类/特征,但我看不到如何正确使用它们。 如何在不使用详细while(hasNext()) getNext()循环风格的情况下遍历Scala中的Java集合? 以下是我根据正确答案编写的代码: class IteratorWrapper[A](iter:java.util.Iterator[A]) { def foreach(f: A => Unit): Unit = { while(iter.hasNext){ f(iter.next) } } } object SpreadsheetParser extends Application { implicit def iteratorToWrapper[T](iter:java.util.Iterator[T]):IteratorWrapper[T] = new IteratorWrapper[T](iter) override def main(args:Array[String]):Unit = { val ios = new FileInputStream("assets/data.xls") val workbook = new HSSFWorkbook(ios) var sheet = […]

在Java中使用Scala特性和实现的方法

我想这是不可能调用从Java实现的Scala特性的方法,或者有办法吗? 假设我在Scala中: trait Trait { def bar = {} } 在Java中如果我使用它 class Foo implements Trait { } Java抱怨Trait is not abstract and does not override abstract method bar() in Trait

Java中的JavaConverters和JavaConversions之间有什么区别?

在scala.collection ,有两个非常相似的对象JavaConversions和JavaConverters 。 这两个对象有什么区别? 他们为什么都存在? 我什么时候想要使用一个?