Java 如何编写以类作为参数的方法

Java 如何编写以类作为参数的方法,java,parameters,Java,Parameters,我正在为我的java类编写一个强制赋值,我们有一个准备好的方法,必须对它进行编码,以生成一个图的MST。在准备好的方法中,它使用另一个类作为参数,我想知道如何在代码中实现这个参数 编制代码: public <T, E extends Comparable<E>> ArrayList<Edge<T>> mst(WeightedGraph<T, E> g) { } 我该怎么做,我该如何引用“WeightedGraph”中

我正在为我的java类编写一个强制赋值,我们有一个准备好的方法,必须对它进行编码,以生成一个图的MST。在准备好的方法中,它使用另一个类作为参数,我想知道如何在代码中实现这个参数

编制代码:

    public <T, E extends Comparable<E>> ArrayList<Edge<T>> mst(WeightedGraph<T, E> g) {

    }
我该怎么做,我该如何引用“WeightedGraph”中的T或E或其他方法?

你正在做的(或你的老师希望你做的)是编写一个通用方法,确定给定图形的MST。给定的图 是名为WeightedGraph的泛型类的实例。因为你没有提供关于类WeightedGraph的详细信息所以我猜 该类是顶点类型T和边类型E的集合,以及一些用于处理图形的方法。 现在回答你的问题: 您将如何做到这一点:

if(T > 10)
    do something;
不,你不能这样做。T是一种类型,不是要比较的变量或值。您可以在这里做的是:

if(g.getVertexCount() > 10 )
    do something;
对于“如何从“WeightedGraph”中引用T或E或其他方法”的问题, 我不确定我是否清楚地理解了这个问题,但是您可以从类WeightedGraph的实例g调用方法。以下是一个例子:

import java.util.ArrayList;

public class Graph {
public <T, E extends Comparable<E>> ArrayList<Edge<T>> mst(WeightedGraph<T, E> g) {
    if(g.getVertexCount() > 10) {
        // do something
    }
    return null;
}
}
import java.util.ArrayList;
公共类图{
公共阵列列表mst(加权图g){
如果(g.getVertexCount()>10){
//做点什么
}
返回null;
}
}
现在,您可以按如下方式使用代码:

import java.util.List;

public class Application {
    public static void main(String[] args) {
        Graph graph = new Graph();
        WeightedGraph<Long, Integer> wg = new WeightedGraph<>();
        List<Edge<Long>> result = graph.mst(wg);
        // do something with the result
    }
}
import java.util.List;
公共类应用程序{
公共静态void main(字符串[]args){
图形=新图形();
WeightedGraph wg=新的WeightedGraph();
列表结果=graph.mst(wg);
//对结果做点什么
}
}

通过上面的代码,我创建了一个图,其中每个顶点都是长的,每个边都是整数。

通过检查WeightedGraph类,或者至少是它的文档,了解它有哪些公共方法。
import java.util.List;

public class Application {
    public static void main(String[] args) {
        Graph graph = new Graph();
        WeightedGraph<Long, Integer> wg = new WeightedGraph<>();
        List<Edge<Long>> result = graph.mst(wg);
        // do something with the result
    }
}