有没有办法为PriorityQueue <modular>提供模块化参数

时间:2019-04-19 23:19:05

标签: java

当前正在创建使用2种类型的优先级队列作为单独方法的代码,这两种方法之间的代码相似,试图将它们调制为一个方法,但是参数在优先级队列的类型上有所不同

我当前正在运行eclipse,尝试通过if语句(如果1在其他情况下起作用)进行广告。问题在于代码需要实例化队列

public void function (String modular){

    if (modular == "A"){
        PriorityQueue<A> queue = new PriorityQueue<A>();
    }
    if (modular == "B"){
        PriorityQueue<B> queue = new PriorityQueue<B>();
    }

    queue.add(parameter,parameter)
}

1 个答案:

答案 0 :(得分:2)

您可以使用generic methods进行处理,例如:

public <T> void function(PriorityQueue<T> queue){
    queue.add(whatever);
}

如果您的2个(或更多)类型的类扩展了相同的父类,则可以使用以下方式:

public <T extends YOUR_PARENT_CLASS_NAME> void function(PriorityQueue<T> queue){
    queue.add(whatever);
}

限制传递给方法的内容。