使用方法创建一个Calculation
抽象类calculate
,然后为每个传感器创建一个继承类,例如Input_1 extends Calculation
. 然后序列化Input_1
,例如使用Jackson,并将序列化的实例存储在您的数据库中。当你需要执行计算时,读入序列化的实例,反序列化它,然后运行它的calculate
方法。
作为替代方案,创建一个执行所有必要输入计算的类,然后根据需要对其进行序列化和反序列化。哪个对您的数据库最有意义。
序列化和反序列化类的最简单方法是使用默认的 Java 序列化程序,如下所示。
public abstract class Calculation {
public double conversion(double d);
}
public class Sensor_34 extends Calculation implements Serializable {
public double conversion(double d) {
// conversion code
}
}
ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
ObjectOutputStream objectOut = new ObjectOutputStream(byteOut);
Sensor_34 sensor34 = new Sensor_34();
objectOut.writeObject(sensor34);
objectOut.close();
byte[] saveThisValue = byteOut.toByteArray(); // save the byte[] to the database
// ***
byte[] input = Database.read(); // read the byte[] back from the database
ByteArrayInputStream byteIn = new ByteArrayInputStream(input);
ObjectInputStream objectIn = new ObjectInputSteam(byteIn);
Calculation calculation = (Calculation)objectIn.readObject();
// Now use the calculation object's "conversion" method to perform the conversion
因此,总而言之,将 Sensor_34 对象序列化为字节数组并将其保存到数据库中,然后将字节数组读回并将其转换回 Sensor_34 对象。