我有三节课。我想在另一个类的一个函数中使用所有类。我需要收集所有Letter类对象并将每个对象的结果放入getNameHashMapgetWeight中。Package我也需要这样做Deliverer。已经尝试使用getDeclaredField/getDeclaredClasses.import java.lang.reflect.Field;public class Parcel{ protected static void addWeight() { Class<?>[] classes = Letter.class.getDeclaredClasses(); for (int i = 0; i < classes.length; i++) { System.out.println("hello"); System.out.println("Class = " + classes[i].getName()); } Field[] allFieldsLetter = Letter.class.getDeclaredFields(); for (int i = 0; i < allFieldsLetter.length; i++) { double value = Letter.getWeight(); Delivery.weightList.put(Letter.getName(), value); } Field[] allFieldsPackage = Package.class.getDeclaredFields(); for (int i = 0; i < allFieldsPackage.length; i++) { double value = Package.getWeight(); Delivery.weightList.put(Package.getName(), value); } Field[] allFieldsDeliverer = Deliverer.class.getDeclaredFields(); for (int i = 0; i < allFieldsDeliverer.length; i++) { double value = Deliverer.getWeight() * 5; Delivery.deliverer.put(Deliverer.getName(), value); } }}例如,如果我创建 3 个Deliverer对象,我想在 HashMap 中获取 3 个三个名称,每个对象一个,以及它们的权重(Delivery.deliverer.put(Deliverer.getName(), value);)。
1 回答
一只名叫tom的猫
TA贡献1906条经验 获得超3个赞
这是一个小示例,其中 Delivery 有一个构造函数,该构造函数接受名称和权重值作为参数。
List<Delivery> myDeliveryInstances = new ArrayList<Delivery>();
myDeliveryInstances.add(new Delivery("D1", 10));
myDeliveryInstances.add(new Delivery("D2", 25));
myDeliveryInstances.add(new Delivery("D3", 50));
Map<String, Long) deliverer = new HashMap<String, Long>();
for (Delivery delivery : myDeliveryInstances) {
deliverer.put(delivery.getName(), delivery.getWeight());
}
添加回答
举报
0/150
提交
取消