У меня есть три разных типа перечислений (itemsA, itemsB и items C) и класс «Product». Пока я передаю одно перечисление в качестве параметра для своего конструктора продукта, имеющего три конструктора:
static Product actualProduct;
public static void setActualProduct(itemsA currentProduct) {
actualProduct = new Product(currentProduct);
public static void setActualProduct(itemsB currentProduct) {
actualProduct = new Product(currentProduct);
public static void setActualProduct(itemsC currentProduct) {
actualProduct = new Product(currentProduct);
класс Product
public class Product {
private String productId;
private String name;
public Product(itemsA item) {
this.productId = item.getId();
this.name = item.getProductName();
}
public Product(itemsB item) {
this.productId = item.getId();
this.name = item.getProductName();
this.category = item.getCategory();
}
public Product(itemsC item) {
this.productId = item.getId();
this.name = item.getProductName();
}
Пример перечисления: itemsA
public enum itemsA{
item1("00001", "itemName", BuySections.TOYS);
private final String id;
private final String productName;
private final BuySections section;
item1(String id, String name, BuySections section){
this.id = id;
this.productName = name;
this.section = section;
}
public String getProductName(){
return productName;
}
Итак, я думаю, что должен быть способ реализовать это, используя некоторые обобщения. Примерно так:
public static void setActualProduct(Enum<?> itemType) {
actualProduct = new Product<?>(itemType);
Любая помощь будет очень принята.