java中SPI是什么意思
1、概念
JDK内置的服务提供发现机制。SPI是一种动态替换和发现的机制。比如有一个界面。如果你想在运行时动态添加,你只需要添加一个实现。我们经常遇到java.sql.Driver界面,其他不同的厂商可以对同一个界面做出不同的实现。mysql和postgresql为用户提供不同的实现,Java的SPI机制可以为某个界面找到服务。
2、实例
public class KryoSerializer implements ObjectSerializer { @Override public byte[] serialize(Object obj) throws ObjectSerializerException { byte[] bytes; ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); try { //获取kryo对象 Kryo kryo = new Kryo(); Output output = new Output(outputStream); kryo.writeObject(output, obj); bytes = output.toBytes(); output.flush(); } catch (Exception ex) { throw new ObjectSerializerException("kryo serialize error" + ex.getMessage()); } finally { try { outputStream.flush(); outputStream.close(); } catch (IOException e) { } } return bytes; } @Override public <T> T deSerialize(byte[] param, Class<T> clazz) throws ObjectSerializerException { T object; try (ByteArrayInputStream inputStream = new ByteArrayInputStream(param)) { Kryo kryo = new Kryo(); Input input = new Input(inputStream); object = kryo.readObject(input, clazz); input.close(); } catch (Exception e) { throw new ObjectSerializerException("kryo deSerialize error" + e.getMessage()); } return object; } @Override public String getSchemeName() { return "kryoSerializer"; } }
java中的嵌套类是什么:1、概念嵌套类是其外部类的成员,非静态嵌套类(内部类)可以访问外部类的其他成员,即使该成员是私有的。静态嵌套类只能访问外部类静态成员。2、特点(1)嵌套类别是四种类别中唯一一种内部类别,不包括外部类别对象。(2)可 ...