我有一个简单的程序如下:
class SerializationBox implements Serializable
{
private byte serializableProp = 10;
public byte getSerializableProp()
{
return serializableProp;
}
public void setSerializableProp(byte serializableProp)
{
serializableProp = serializableProp;
}
}
public class SerializationSample
{
/**
* @param args
*/
public static void main(String args[])
{
SerializationBox serialB = new SerializationBox();
serialB.setSerializableProp(1); // Here i get an error
}
}
在代码中指示的位置,我得到错误“SerializationBox类型中的方法setSerializableProp(byte)不适用于参数(int)”。
我相信根据链接http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html,我可以通过-128到127作为争论。
请让我知道我错过了什么?
答案 0 :(得分:1)
您必须强制整数到byte
:
serialB.setSerializableProp((byte) 1);
注意:
当你这样做时
private byte serializableProp = 10;
10
是整数,而不是二进制数。要指定该数字是二进制文件,您必须使用以下语法:
private byte serializableProp = 0b10;
^^
答案 1 :(得分:1)
你试图用整数文字调用setSerializableProp()
方法。这会给你编译错误。
因此,将整数文字向下转换为如下所示的字节
setSerializableProp((byte)1)
答案 2 :(得分:0)
serialB.setSerializableProp((byte)1);
这会将您的整数文字(1
)明确地转换为byte