有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java通过类<?将T>扩展为参数

这是一些代码,我希望能让你理解我想要什么。这当然行不通

public static <T> void foo(Class<? extends T> type, AsyncCallback<T> callback){
    /*do something */
}



public void MyMethod() {
    Class a;
    if (isSomething()) {
        a = "some class";
    } else if (isSomething2()){
        a = "some other class";
    }
    /* probably more of this or even a switch*/
    useFoo(a);
}

public void useFoo(Class a){
    foo(a.class, AsyncCallback<a> {
        /* some callback */
    });
}       

方法foo已经存在,我需要从MyMethod动态使用它。目前,MyMethod中每个不同的if语句都有一个useFoo。我只想有一个useFoo,它将被调用一些参数。原因是回调是一段很长的代码,需要在该方法的每次调用中重复。我如何在不改变foo方法的情况下实现这一点?我希望你能理解我的问题。谢谢


共 (1) 个答案

  1. # 1 楼答案

    剩下的代码与上面相同,您可以将useFoo方法编写为:

    public <T> void useFoo(Class<T> a) {
        foo(a, new AsyncCallback<T>() {
            /* some callback */
        });
    }