我不确定这是问这个问题的正确地方,但是我正在尝试manifold project一点,也不确定我尝试实现的方案是否适用于多方面?
我有一个类似following的类(它将由我无法控制的第三方软件创建)。
public ClassA {
String getUuid();
}
现在,我希望此类实现以下接口...
@Structural
public Interface InterfaceA {
String getUuid();
}
对于以下情况...
public ClassB<GenTypeA extends InterfaceA> {
}
但是当我尝试以下操作时偏离路线...
ClassB varB = new ClassB<ClassA>();
Java开始抱怨ClassA没有实现InterfaceA。
我想做的事完全可行吗?
谢谢答案...
最佳答案
现在,您可以在歧管中实现此目的。有一个问题阻止了它的工作:https://github.com/manifold-systems/manifold/issues/35,该问题最近已修复。在0.38-alpha版本中可用。
另一个重要说明。为了完成您的示例,您还必须提供ClassA
的扩展名,以声明其名义上支持InterfaceA
,这仅在避免强制转换涉及InterfaceA
的泛型类型时是必需的:
package my_project.extensions.path.to.ClassA;
import manifold.ext.api.Extension;
@Extension
public abstract class MyClassAExtension implements InterfaceA {
}
了解更多:http://manifold.systems/docs.html#extension-interfaces