如何在java中检索特定类的实例化对象?

时间:2012-03-03 19:42:56

标签: java

例如,

// 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");

现在稍后在程序中,我想检索特定类的所有实例化对象?

我不想将它们存储在集合中。还有其他方法吗?

2 个答案:

答案 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”工厂方法,该方法会自动将每个实例添加到您可以根据需要使用的集合中。