我有一个非常简单的问题-

我有一个名为DEClient的类,其构造函数如下:

public DEClient(List<DEKey> keys) {
    process(keys);
}


DEKey类是这样的-

public class DEKey {

    private String name;
    private String value;

    public DEKey(){
        name = null;
        value = null;
    }

    public DEKey(String name, String value){
        this.name  = name;
        this.value = value;
    }

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

    public String getValue() {
        return value;
    }
    public void setValue(String value) {
        this.value = value;
    }
}


现在,我尝试实例化DEClient构造函数。因此,我需要拥有List<DEKey>

因此,我要做的是使用DEKey(将返回service.getKeys())和String作为值实例化id类,如下所示。

DEKey dk = new DEKey(service.getKeys(), id);

//The below line throws exception whenever I am running.
DEClient deClient = new DEClient((List<DEKey>) dk);


我在这里做什么错?

最佳答案

您需要先创建一个List,然后将密钥添加到该List。像您一样进行转换不是做到这一点的方法,因为DEKey不是List,并且将其转换为将抛出ClassCastException

DEKey dk = new DEKey(service.getKeys(), id);

List<DEKey> list = new ArrayList<DEKey>();
list.add (dk);

DEClient deClient = new DEClient(list);

10-07 20:40