3

名前の付いた関数を定義しまし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:(chars:List [Char]、a:List [(Char、Integer)])List [(Char、Integer)]

これの理由は何ですか?

4

1 に答える 1

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.Integerです。Intしたがって、import java.lang.Integerまたはに変更IntegerIntます。

于 2012-10-21T06:30:20.353 に答える