2012-04-05 62 views

回答

7

是否有可能从任何其他类类型获取byte []对象?

某些类可能会实现一个类似的服务。

是否有可能从用户定义的类对象中获取byte []对象?

不是没有你自己写的转换。


实施例如何做自己(只是注意,DataOutputStream处理转换,例如所使用的字节顺序)

ByteArrayOutputStream out = new ByteArrayOutputStream(); 
{ 
    // conversion from "yourObject" to byte[] 
    DataOutputStream dos = new DataOuputStream(out); 
    dos.writeInt(yourObject.intProperty); 
    dos.writeByte(yourObject.byteProperty); 
    dos.writeFloat(yourObject.floatProperty); 
    dos.writeChars(yourObject.stringProperty); 
    dos.close(); 
} 
byte[] byteArray = out.toByteArray(); 
+1

另外,这一切都不是J2ME特定...普通Java一路。 – Romain 2012-04-05 11:36:23

+0

@Romain well,在第2版中增加的代码示例肯定介绍了_some_ J2ME特有的。例如[dos.writeFloat](http://docs.oracle.com/javame/config/cldc/ref-impl/midp2.0/jsr118/java/io/DataOutputStream.html#writeFloat(float)“MIDP/CLDC API文档“)不能在Java ME CLDC版本1.0(JSR 30)中编译 – gnat 2012-04-05 12:36:21

+1

@gnat我的意思不是J2ME特定的,因为没有”通用“方法将随机类实例转换为byte []。现在,如果J2ME特定的类提供了高级帮助程序,那么这是一个不同的问题,就像“Library X执行它”一样。 – Romain 2012-04-05 14:52:57

1
getBytes(); 

是String类方法它转换你的String into byte Array ..
所以,如果你想给你的班级类型的转换功能意味着
user-defined class object
那么你必须给该功能你的自我的植入..
像前: -

public class MyClass{ 
    public byte[] myConvertor(String str){ 
     // do your logic here ... 
    } 
}