java - 调用对可能实现该接口(interface)的对象进行接口(interface)约束的泛型方法

标签 java generics

这是我的代码:

interface a {}
class b{}
class c extends b implements a{}
class d extends b{}
class e{
    public void makeItWork(){
        b[] bees = new b[] {new c(), new d()};
        for (b bee: bees){
            if (bee instanceof a) {
                a beeA = (a) bee;
                //how to call the method test if object bee conforms the the interface?
                test(beeA.getClass(), beeA);
                //this goes wrong
            }
        }
    }
    public <T extends a> void test(Class<T> classType, T concrete){
    }
}

除了可能是糟糕的设计之外,我想知道是否可以在实现接口(interface)a的对象上调用方法test

最佳答案

您的test方法不需要泛型类型参数。

您可以将其定义为:

public void test(Class<? extends a> classType, a concrete) {
}

附注请使用大写的类名。

关于java - 调用对可能实现该接口(interface)的对象进行接口(interface)约束的泛型方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49382457/

相关文章:

Java Spark 将 HIVE View 重制为 INSERT

Java-重用具有相同运行但不同参数的线程

java - Lucene 8 评分

scala - 通用类型,这样一个方法的结果可以再次用作另一个方法的参数

java - 如何将代码转换为泛型方法 - Object.class

java - 如何使用泛型限制接受某些用户定义的类对象的方法?

java - Prerender.io 与 Play 框架

java - "What to share on Github"是否有任何关于 RCP 开发的指南?

c# - 将派生类集合分配给基类集合编译错误

C# 泛型方法问题,TargetException,对象与目标类型不匹配