java - 将 getter 与 java 泛型方法参数一起使用

标签 java generics type-inference

我有一个采用通用参数类型的方法。我的场景是将使用不同的参数类型调用此方法。

class something{
    public void someMethod(){
        List<A> listA = ....; //Class A have a field String Id;
        List<B> listB = ....; //Class B haave a field String Id;

        testMethod(listA);
        testMethod(listB);
    }

    private <T> void testMethod( List<T> list ){
            for( T event : list ){
                //TODO (something like): event.getId();
            }
        }
}

在上面的代码中,所有的参数都是一个List<someObjectType>。 .所有对象类型都有一个公共(public)字段,需要使用 getter 来获取它的值。现在既然方法定义是通用的,我该如何实现呢?

最佳答案

AB 实现一个具有方法 getID 的公共(public)接口(interface):

interface SomeInterface {
    String getID();
}

那么你可以:

private <T extends SomeInterface> void testMethod(List<T> list) {
    for (T event : list) {
        // now you can use `event.getID()` here
    }
}

关于java - 将 getter 与 java 泛型方法参数一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13710954/

相关文章:

haskell - 类型为 Num ([Char] -> t) => t 的奇怪 Haskell 表达式

java - KStream和KTable同时操作

python - 使用可变泛型进行方法返回专门化

delphi - 如何使用TD词典?

arrays - 为什么 Swift 在将多个类型项放入数组时不对 Any 进行类型推断

涉及 boolean 值的 Java 8 类型推断

java - 如何为列表适配器中的按钮创建 OnClickListener,该按钮将允许我设置 EditText View 的可见性

Java:如何将文件夹从一个jar复制到另一个jar?

java - 这个类的 ids 必须手动分配吗?

c# - 具有特定类型的通用列表的扩展?