Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中检索特定类的实例化对象?_Java - Fatal编程技术网

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

如何在java中检索特定类的实例化对象?,java,Java,比如说, // Object 1 SensorMeasurement tempSDSMInfo1 = new SensorMeasurement("temperatureMeasurement", tempSDStruct, "SensorDriver", "TemperatureSensor"); // Object 2 SensorMeasurement tempSDSMInfo2 = new SensorMeasurement("temperatureMeasurement", temp

比如说,

// 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");
现在在程序的后面,我想检索特定类的所有实例化对象?


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

实际上没有其他方法。解决此问题的最佳实践方法是使用工厂进行传感器测量,或使用经理级。然后,您将能够稍后通过工厂或经理引用它们,并在工厂或经理中完成操作,同时允许集中逻辑中心

您不能直接在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);
  }
}
公共类传感器测量{
受保护的静态集allMeasurements=new HashSet();
专用传感器测量(…){}
公共静态buildSensorMeasurement(字符串s、对象x等){
传感器测量sm=新传感器测量(s,x,…);
所有测量值。添加(sm);
返回sm;
}
公共静态集getAllSensorMeasurements(){
返回新的哈希集(所有度量);
}
}

这样,类的用户必须使用“buildSensorMeasurement”工厂方法,该方法将自动将每个实例添加到集合中,您可以根据需要使用该集合。

听起来您想要形成一个对象集合。你为什么不想将它们存储在集合中?你想找到用于分析或调试的引用吗?实际上还有另一种方法,通过插装,但我怀疑这是他想要的。@baba:如果可以的话,你能解释插装方法吗?嗯,基本上,如果你使用IDE,你已经注意到有一种可能性,在调试模式下,查看jvm加载了哪些类、有多少对象等。当然,这是在当前时间对快照执行的。因此,如果你找到了一种方法太多的钩到debigging,你是设置。看看这个:。正如它所说的,插装可以为您提供有关当前jvm的统计信息。我个人认为,对于您描述的问题,工厂就足够了(而且不那么复杂)