use*_*458 0 java inheritance scala interface scala-2.10
我在Scala类中使用Java接口时遇到问题.这是问题所在.
首先,这是简化的Java接口:
java.util.concurrent.TimeUnit;
import Message;
public interface JavaInterface {
public Message get(int param1, Long param2, TimeUnit unit);
}
Run Code Online (Sandbox Code Playgroud)
然后,我有一个尝试使用此接口的Scala类
java.util.concurrent.TimeUnit
import Message
class ScalaClass extends JavaInterface {
def get(param1:Int, param2: Long, unit:TimeUnit):Message = {
new Message("Just a test")
}
}
Run Code Online (Sandbox Code Playgroud)
但是当它编译时,Scala编译器一直抱怨scalaClass中没有实现get()函数:
类ScalaClass需要是抽象的,因为:[error]它有1个未实现的成员.[error]/**从类ScalaClass中可以看出,缺少的签名如下所示.[错误]*为方便起见,这些可用作存根实现.[错误]*/[错误] def get(x $ 1:Int,x $ 2:Long,x $ 3:java.util.concurrent.TimeUnit):Message = ???
我怀疑这可能是因为Scala不喜欢Java int,但是我无法让它工作,有没有人有任何想法?
谢谢你
该Int是细
scala> classOf[Int]
res0: Class[Int] = int
Run Code Online (Sandbox Code Playgroud)
但Long事实并非如此
scala> classOf[Long]
res3: Class[Long] = long
Run Code Online (Sandbox Code Playgroud)
试试吧
def get(param1:Int, param2: java.lang.Long, unit:TimeUnit): Message =
new Message("Just a test")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
390 次 |
| 最近记录: |