簡體   English   中英

如何使用來自多個類的多個對象及其方法

[英]How to use multiple objects and their methods from multiple classes

我有三個班。 我想在另一個類中使用一個 function 中的所有類。 我需要收集所有Letter class 對象,並將每個 object 的getNamegetWeight的結果放入 HashMap 中。 我也需要PackageDeliverer

已經嘗試使用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對象,我想獲得 3 個三個名稱,每個 object 一個,它們的權重在 HashMap (Delivery.deliverer.put(Deliverer.getName(), value);)中。

這是一個小例子,其中 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());
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM