我想实现泛型处理protobuffer类型
public <T > void Send(T s) {
if (mode == "PUB") {
sock.send(s.toByteArray(), 0);
} else if (mode == "REQ") {
sock.send(s.toByteArray(), 0);
byte[] rs = sock.recv(0);
System.out.println("recv ack " + Arrays.toString(rs));
} else {
System.out.println("Unknown mode " + mode);
System.exit(1);
}
}
这样好像不行,因为s.toByteArray()找不到,有没有人可以解答下?
本人c++写的多,最近在学习java,另外问一句,java是不是不能特化模板参数,比如我想指定函数参数是特定类型怎么办?
public <T extends 你说的有toByteArray的父类>
譬如
public <T extends Date> void test(T t){
t就有了Date的方法,因为是Date的子类
}
你这个方法是void你可以直接
public void send(protobuffer protobuffer)不就行了,没看到定义泛型的用处啊