Hashset 作为 Java 中的构造函数参数

Jar*_*ers 1 java constructor hashset

有什么方法可以声明构造函数以将 HashSet 作为参数之一,然后在对象初始化期间直接将 HashSet 值作为参数传递?我的意思是这样的:

public class Order {
    private Set<Product> products = new HashSet<Product>();
    public Order (???) {
    this.products = ???
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,在初始化对象时:

Order order = new Order("product1", "product2", "product3");
Run Code Online (Sandbox Code Playgroud)

是否可以?

Era*_*ran 5

您可以使用可变参数:

public class Order {
    private Set<Product> products;
    public Order (Product... products) {
       this.products = new HashSet<Product> (Arrays.asList(products));
    }
}
Run Code Online (Sandbox Code Playgroud)

但是然后你传递给构造函数 Product 实例:

Order order = new Order(new Product("product1"), new Product("product2"), new Product("product3"));
Run Code Online (Sandbox Code Playgroud)