java - T 具有不同类型的 ArrayList<T>

标签 java templates generics arraylist

我想要一个具有不同但相似类型的列表。 例如,我想将不同 validator 类的列表放在一个列表中。

例如:

ArrayList<T> validators = new ArrayList<T>();
validators.add(new StringValidator());
validators.add(new IntegerValidator());

这可以做到吗?

最佳答案

以下是如何执行此操作的完整示例:

首先,定义一个接口(interface):

public interface Validator {
    void validate();
}

然后,创建一个实现:

public class IntegerValidator implements Validator {

    public void validate() {
        // Validate
    }
} 

字符串 validator 实现:

public class StringValidator implements Validator {
    public void validate() {
        // Validate
    }
}

这是客户端代码:

public class Test {

    public static void main(String[] args) {
        List<Validator> v = new ArrayList<Validator>();
        v.add(new StringValidator());
        v.add(new IntegerValidator());

        for (Validator validator : v) {
            validator.validate();
        }
    }
}

关于java - T 具有不同类型的 ArrayList<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18825180/

相关文章:

java - LocalDateTime - 使用 LocalDateTime.parse 进行反序列化

c++ - 使用可变参数模板和重载 << 运算符编译错误

c# - 泛型的默认值

c# - 如何创建 Nullable<T> 的实例?

java - 尝试将图像上传到服务器时出现 500 内部服务器

java - 使用 Apache POI 更改图像布局或包装在 DOCX 中

java JPanel setSize 和 setLocation

c++ - 变体类型和可变参数模板的转换和输出运算符

C++:传递具有任意数量参数的函数作为参数

java - 在 Java 中实例化一个泛型类