在我当前的项目中,我正在使用org.postgresql.PGNotification从postgres获取通知。用法如下:PGNotification notifications [] = pgconn.getNotifications();
但是最近我才意识到PGNotification不是一个类而是一个接口!如果我想序列化PGNotification,我该怎么做?在IDE中,它会自动生成以下代码,而这些代码很可能无法正常工作。
本质上,就是我不了解如何像上面那样使用接口。有人可以向我解释吗?
谢谢!
public class SerializableNotification implements Serializable, PGNotification{
/**
*
*/
private static final long serialVersionUID = -1601340490113080932L;
public String getName() {
// TODO Auto-generated method stub
return null;
}
public int getPID() {
// TODO Auto-generated method stub
return 0;
}
public String getParameter() {
// TODO Auto-generated method stub
return null;
}
}
最佳答案
您可能需要将PGNotification
对象转换为SerializableNotification
对象。
像这样:
PGNotification[] notifications = pgconn.getNotifications();
SerializableNotification[] serializableNotifications = new SerializableNotification[notifications.length];
for(int i = 0; i < notifications.length; i++) {
PGNotification notif = notifications[i];
serializableNotifications[i] = new SerializableNotification(notif.getName(), notif.getPID, notif.getParameter());
}
鉴于
SerializableNotification
是您拥有的代码,您可以简单地创建一个构造函数以接收name
,PID
和Parameter
。