创建对象枚举

Create Enumeration of objects

我需要创建一个 java.util.Enumeration 的 Fruit 对象,以便我可以在测试期间将其传递给此方法。这是遗留代码,我无法更改方法签名。

public void get(Enumeration<Fruit> fruits){}

我的水果class:

public class Fruit{
    String name;
    //getters and setters   
}

如何创建 Fruit 对象的枚举?

您可以使用 Collections.enumeration(Collection<T>) 方法将集合(例如 List<Fruit>)转换为 Enumeration<Fruit>:

List<Fruit> fruits = new ArrayList<>();
fruits.add(new Fruit());
Enumeration<Fruit> fruitEnumeration = Collections.enumeration(fruits);

您可以使用 Collections.enumeration()Collection<T>(包括 List<T>)转换为 Enumeration<T>。一个例子(公然从 here 偷来的):

package com.tutorialspoint;

import java.util.*;

public class CollectionsDemo {
   public static void main(String args[]) {
       // create an ArrayList
       List arrayList = new ArrayList();

       // populate the list
       arrayList.add("A");
       arrayList.add("B");
       arrayList.add("C");  

       // create an Enumeration
       Enumeration e = Collections.enumeration(arrayList);

       System.out.println("Printing the enumeration:");

       while (e.hasMoreElements()) {
            System.out.println("Value is: " + e.nextElement());
       }
   }    
}