今天调用一个SDK时发现该包中部分代码用了lambda表达式, 因为项目不能升级1.8的原因,所以需要将lambda表达式转换为jdk1.7的代码;
private static Serializer tinyIntWriter = v -> {
if (v < -128 || v > 127) {
throw new RuntimeException("not tinyInt: " + v);
}
ByteArrayOutputStream out = new ByteArrayOutputStream();
out.write(v);
return out.toByteArray();
};
应为需要实现Serializer
private interface Serializer {
byte[] serialize(int a);
}
所以最后代码应该修改为
private static Serializer tinyIntWriter = new Serializer(){
public byte[] serialize(int v) {
if (v < -128 || v > 127) {
throw new RuntimeException("not tinyInt: " + v);
}
ByteArrayOutputStream out = new ByteArrayOutputStream();
out.write(v);
return out.toByteArray();
}
};
今日份代码记录。