java 可变参数转换 String...args 成 byte[]...args

2016-07-07 19:51:31 +08:00
 skywalkboy

Java 中 String 的可变参数如何转换成 byte[]的可变参数,如下面例子中 obj.functionB 的入参是 byte[]的可变参数,请问如何转换

public void functionA(String...args){

 Object obj = new Object();
 //args 如何转换成 functionB 的入参
 obj.functionB(?);

}

Class Object{

public void functionB(byte[]...args){
       ......
}

}

2271 次点击
所在节点    问与答
2 条回复
hpeng
2016-07-07 20:08:43 +08:00
public class test {

public static void main(String[] args) {
try {
ByteArray(StringArrayToBytesArray("utf8", "abc", "def", "fff", "ddd"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}

public static byte[][] StringArrayToBytesArray(String encoding, String ...strings) throws UnsupportedEncodingException {
byte[][] bytes = new byte[strings.length][];
for (int i=0; i<strings.length; i++) {
bytes[i] = strings[i].getBytes(encoding);
}
return bytes;
}

public static void ByteArray(byte[] ...args) {
System.out.println(args.length);
}
}
shyling
2016-07-07 20:59:12 +08:00
class M{
void customer(byte[] ...args){};
void convert(String ...args){
List<byte[]> list = Stream.of(args).parallel().flatMap(s->Stream.of(s.getBytes())).collect(Collectors.toList());
byte[][] bs = new byte[list.size()][];
list.toArray(bs);
customer(bs);
}

}

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/290961

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX