【发布时间】:2013-01-31 16:48:29
【问题描述】:
如何声明一个带有参数的方法,该方法的参数必须是某个实现某个接口的类而不为此声明一个特殊的类?
假设我已经声明了类 ImageX 并且还声明了接口标记。所以我需要创建一些其他类或方法,它必须只接收实现标记接口的 ImageX 实例。如何声明这样的方法?像
private void someMethod (ImageX<Tagging> obj){}
但这当然是不正确的。是的,如果它实现了所需的接口,我可以检查 obj,但我想要检查参数。如果它不是某种方法而是构造函数怎么办...
我是在问泛型吗?
【问题讨论】:
-
所以你想要一个
Tagging接口,以及一个单独的ImageX类,它不 实现Tagging,然后你想要一个方法接受ImageX的实例,但前提是它们也 实现Tagging?我建议想要这样做表明需要重构。 -
是的,我想要它。这是关于android的,类是Activity,它实现了一些需要的接口。但并不是每个活动都这样做,我不想仅仅为此而对活动进行子类化。
-
@stan:我明白了。幸运的是,assylias 给出了答案(也是一个很酷的答案)。
标签: java android generics methods constructor