小编jur*_*rym的帖子

Java:返回一个实现具有类型推断接口的类

第一次发帖,对不起,标题可能是垃圾。我正在尝试使用类型推断,但是在使用工厂模式时却努力使其正常工作,让我扔掉一些代码以使其更加清晰:

private class ParentObject { }

private class ChildObject extends ParentObject { }

private interface Template<T extends ParentObject> {
    void doSomething(T object);
}

private class TemplateImpl implements Template<ChildObject> {
    public void doSomething(ChildObject object) { }
}
Run Code Online (Sandbox Code Playgroud)

因此,我有一些从Template继承的类,它们对从ParentObject继承的对象做一些事情(我在本文中仅发布了其中一个)。现在,我遇到的问题是,当我尝试生成这些模板类之一时,在尝试执行此操作时,我不断收到“不兼容的类型”错误:

private class Factory {
    public <T extends ParentObject> Template<T> generate() {
        return new TemplateImpl(); // here is the error
    }
}
private class Service {
    public <T extends ParentObject> void magic() {
        Factory f = new Factory();
        Template<T> a = f.generate();
    }
} …
Run Code Online (Sandbox Code Playgroud)

java inference type-inference

8
推荐指数
1
解决办法
114
查看次数

标签 统计

inference ×1

java ×1

type-inference ×1