例如,
// Object 1
SensorMeasurement tempSDSMInfo1 = new SensorMeasurement("temperatureMeasurement", tempSDStruct, "SensorDriver", "TemperatureSensor");
// Object 2
SensorMeasurement tempSDSMInfo2 = new SensorMeasurement("temperatureMeasurement", tempSDStruct, "SensorDriver", "TemperatureSensor");
//Object 3
SensorMeasurement tempSDSMInfo3 = new SensorMeasurement("temperatureMeasurement", tempSDStruct, "SensorDriver", "TemperatureSensor");
现在稍后在程序中,我想检索特定类的所有实例化对象?
我不想将它们存储在集合中。还有其他方法吗?
答案 0 :(得分:3)
实际上没有任何其他方法。解决此问题的最佳方法是使用SensorMeasurement工厂或经理类。然后,您将能够通过工厂或经理参考它们,并在工厂或经理中完成操作,并允许集中逻辑中心。
答案 1 :(得分:0)
您无法直接在Java语言中执行此操作 - 您唯一的选择是将所需的对象引用存储在集合中。
例如,您可以设计您的课程:
public class SensorMeasurement {
protected static Set<SensorMeasurement> allMeasurements = new HashSet();
private SensorMeasurement(...) { }
public static buildSensorMeasurement(String s, Object x, ...) {
SensorMeasurement sm = new SensorMeasurement(s, x, ...);
allMeasurements.add(sm);
return sm;
}
public static Set<SensorMeasurement> getAllSensorMeasurements() {
return new HashSet<SensorMeasurement>(allMeasurements);
}
}
这样,您的类的用户必须使用“buildSensorMeasurement”工厂方法,该方法会自动将每个实例添加到您可以根据需要使用的集合中。