scala中的弃用警告

时间:2012-10-21 06:25:04

标签: scala

我已经定义了一个名为ti的函数,但在编译之后它显示了一个弃​​用警告。我在Eclipse中做了同样的事情。代码工作正常,但它显示警告。

scala>  def ti(chars:List[Char],a:List[(Char,Integer)]):List[(Char,Integer)] = {
     |    if(chars.length!=0) {
     |      var j = 1
     |      var c = chars.head
     |      for(i<-chars.tail) {
     |        if(c==i) j=j+1
     |      }
     |      a::List((c,j))
     |      ti(chars.tail,a)
     |   }
     |   else a
     | }
  

警告:有3个弃用警告;使用-deprecation重新运行以获取详细信息   ti :(字符:List [Char],a:List [(Char,Integer)])List [(Char,Integer)]

这是什么原因?

1 个答案:

答案 0 :(得分:8)

如果它告诉你用-deprecation重新运行,你应该这样做:

k@k:~$ scala -deprecation
Welcome to Scala version 2.9.1 (OpenJDK 64-Bit Server VM, Java 1.6.0_24).
Type in expressions to have them evaluated.
Type :help for more information.

scala> def ti(chars:List[Char],a:List[(Char,Integer)]):List[(Char,Integer)]=
     |         { if(chars.length!=0)
     |            {
     |            var j=1
     |            var c=chars.head
     |            for(i<-chars.tail)
     |            {
     |            if(c==i) j=j+1
     |            }
     |            a::List((c,j))
     |            ti(chars.tail,a)
     |            }
     |         else a
     |         }

然后你会收到警告:

<console>:7: warning: type Integer is deprecated: use java.lang.Integer instead
       def ti(chars:List[Char],a:List[(Char,Integer)]):List[(Char,Integer)]=
                                 ^
<console>:7: warning: type Integer is deprecated: use java.lang.Integer instead
       def ti(chars:List[Char],a:List[(Char,Integer)]):List[(Char,Integer)]=
                                                       ^
<console>:16: warning: type Integer is deprecated: use java.lang.Integer instead
                  a::List((c,j))
                   ^

问题在于,如果您不需要与Java的互操作性,则应使用java.lang.IntegerInt。因此,您import java.lang.Integer或将Integer更改为Int