在对象中设置字节字段

时间:2014-04-07 06:57:19

标签: java

我有一个简单的程序如下:

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作为争论。

请让我知道我错过了什么?

3 个答案:

答案 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