如果我写:
def getShort(b: Array[Byte]): Short
Run Code Online (Sandbox Code Playgroud)
在Scala中,我在Java中获得了原始的简短,这很好.但如果我写:
def getChar(b:Array [Byte]):Char
我得到一个scala.Char对象,这不是很好.如果我写:
def getChar(b: Array[Byte]): Character
Run Code Online (Sandbox Code Playgroud)
我得到了一个java.lang.Character,这也不错.
如果Scala"Char"不是Java"char",而Scala"Character"不是Java"char",那还剩下什么?
Rex*_*err 10
你弄错了; Char 是 Java原始字符.注意:
scala> class IsPrimitiveChar {
| def myChar(i: Int): Char = i.toChar // I am clearly a Char, whatever that is!
| }
defined class IsPrimitiveChar
scala> :javap IsPrimitveChar
Compiled from "<console>"
public class IsPrimitiveChar extends java.lang.Object implements scala.ScalaObject{
public char myChar(int); // Look, it returns a char!
public IsPrimitiveChar();
}
scala> :javap -c -private IsPrimitiveChar
Compiled from "<console>"
public class IsPrimitiveChar extends java.lang.Object implements scala.ScalaObject{
public char myChar(int);
Code:
0: iload_1
1: i2c // Look, primitive int to char conversion in bytecode!
2: ireturn // And that's all!
Run Code Online (Sandbox Code Playgroud)
:javap顺便说一下,需要在类路径上使用tools.jar 才能工作.它包含在Sun/Oracle JVM中.
| 归档时间: |
|
| 查看次数: |
1341 次 |
| 最近记录: |