Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 提取泛型类的字段_Java_Generics - Fatal编程技术网

Java 提取泛型类的字段

Java 提取泛型类的字段,java,generics,Java,Generics,我有多个类,它们都有一个公共字段。我正在写一个方法来提取这个公共字段。例如: class A{ .. String blah; .. } class B{ .. String blah; .. } 因此,不是为每个类类型编写多个方法,而是可以使用接受泛型类的方法来实现吗? 我想要的是一个类型为的方法: void func(List <T> data){ for(T t:data){ print t.blah(

我有多个类,它们都有一个公共字段。我正在写一个方法来提取这个公共字段。例如:

class A{
    ..
    String blah;
    ..
}

class B{
    ..
    String blah;
    ..
}
因此,不是为每个类类型编写多个方法,而是可以使用接受泛型类的方法来实现吗? 我想要的是一个类型为的方法:

void func(List <T> data){
    for(T t:data){
        print t.blah()
    }
}
void func(列表数据){
for(T:数据){
打印t.blah()
}
}

我知道上面的代码不正确,但我们如何获得类似的功能?

首先,创建一个包含任何常用方法签名的接口

interface Blah {
    String getBlah();
}
然后,使现有类
A
B
实现该接口。(使用
@Override
确保正确重写了该方法。)

最后,在
func
中,获取实现该接口的对象列表

void func(List<? extends Blah> data) {
    for (Blah t : data) {
        System.out.println(t.getBlah());
    }
}

void func(列表)使用该方法创建接口