java - 匿名方法使用泛型值作为参数

标签 java generics anonymous-types anonymous-methods

我坚持使用匿名方法的java传统, 我正在使用具有通用接口(interface)的第三方库,该接口(interface)将 table_name 作为其通用类型

喜欢

TableQueryCallback<WYF_Brands> =new TableQueryCallback<WYF_Brands>() {
    @Override
    public void onCompleted(List<WYF_Brands> arg0, int arg1,
        Exception arg2, ServiceFilterResponse arg3) {
        // TODO Auto-generated method stub
    }
};

此处 WYF_Brands 是我的表名称。

我想要的是

TableQueryCallback<WYF_Users> =new TableQueryCallback<WYF_Users>() {
    @Override
    public void onCompleted(List<WYF_Users> arg0, int arg1,
        Exception arg2, ServiceFilterResponse arg3) {
        // TODO Auto-generated method stub
    }
};

其中 WYF_Users 是我的另一个表。

要求:我想对我的所有表使用这样的方法,但以可重用的方式。

我在数据库中有很多表,并且不愿意为不同的表创建不同的方法。我不知道如何使用可以接受任何表名作为参数的泛型。

另一件事是,该接口(interface)是第三方库的一部分,因此我无法更改它,因为它位于可执行 jar 文件内。

我使用java作为编程语言。

最佳答案

听起来您只想要一个通用方法:

public <T> TableQueryCallback<T> createTableQueryCallback() {
    return new TableQueryCallback<T>() {
        @Override
        public void onCompleted(List<T> list, int arg1,
                Exception arg2, ServiceFilterResponse arg3) {
            // I'm assuming the implementation here would be the same each time?
        }
    };
}

尽管我很想创建一个命名嵌套类:

private static SomeSpecificTableQueryCallback<T> implements TableQueryCallback<T> {
    @Override
    public void onCompleted(List<T> list, int arg1,
            Exception arg2, ServiceFilterResponse arg3) {
        // I'm assuming the implementation here would be the same each time?
    }
}

...我不明白为什么匿名会给您带来任何好处。

关于java - 匿名方法使用泛型值作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15224129/

相关文章:

Java SSL套接字 : How to send full server cert chain?

java - java中的JS样式警告框

c# - 当数据类型已知时使用 var 关键字

.net - 匿名类型集合?

powershell - 在PowerShell中按名称设置嵌套对象属性的值

java - 我的程序在 Eclipse 中读取 .txt 文件,但当我导出为 .jar 时却无法读取?

java - 从 JSONArray 获取无名 JSON 中的特定项目

generics - 为什么在具有上限的投影泛型类型中,生产者方法的返回类型为Any?而不是上限类型?

c# - 委托(delegate)可以将泛型作为参数吗

java - 在java中向下转换数组(删除未经检查的警告游戏)