函數(shù)式編程
2024-01-05 14:48:26
我有三節(jié)課。我想在另一個(gè)類的一個(gè)函數(shù)中使用所有類。我需要收集所有Letter類對(duì)象并將每個(gè)對(duì)象的結(jié)果放入getNameHashMapgetWeight中。Package我也需要這樣做Deliverer。已經(jīng)嘗試使用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); } }}例如,如果我創(chuàng)建 3 個(gè)Deliverer對(duì)象,我想在 HashMap 中獲取 3 個(gè)三個(gè)名稱,每個(gè)對(duì)象一個(gè),以及它們的權(quán)重(Delivery.deliverer.put(Deliverer.getName(), value);)。
1 回答
一只名叫tom的貓
TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超3個(gè)贊
這是一個(gè)小示例,其中 Delivery 有一個(gè)構(gòu)造函數(shù),該構(gòu)造函數(shù)接受名稱和權(quán)重值作為參數(shù)。
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());
}
添加回答
舉報(bào)
0/150
提交
取消
