java - 方法参数必须是实现某个接口(interface)的某个类的obj

标签 java android generics methods constructor

如何在不为此声明一个特殊类的情况下声明一个方法,其参数必须同时是实现某个接口(interface)的某个类?
假设我已经声明了类 ImageX 并且还声明了接口(interface)标记。所以我需要创建一些其他的类或方法,这些类或方法必须只接收实现 Tagging 接口(interface)的 ImageX 实例。如何声明这样的方法?像

private void someMethod (ImageX<Tagging> obj){} 

但这当然是不正确的。是的,我可以检查 obj 是否实现了所需的接口(interface),但我想要检查参数。如果它不是某种方法而是构造函数怎么办...
我问的是泛型吗?

最佳答案

您可以使该方法通用,并通过使用类型交集仅接受既是 ImageX 又是 Tagging 的对象:

private <T extends ImageX & Tagging> void someMethod (T obj){} 

关于java - 方法参数必须是实现某个接口(interface)的某个类的obj,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14899314/

相关文章:

android - Environment.getExternalStorageDirectory 不返回可移动存储的路径

java - 泛型 super 与扩展

java - 如何创建 Ellipse2D 数组?

Java - JPanel - 使用数组列表绘制文本文件的内容 - 仅第一次有效

android - 使用 parse.com 和 android studio 设置推送通知时出错

java - 在泛型方法中传递类型时,使用 TypeReference 的 ObjectMapper 不起作用

java - 使用mockito模拟具有通用返回类型的方法

java - "com.fasterxml.jackson.databind.JsonMappingException: Expected type float, integer, or string."使用 ObjectMapper 转换 java.time.Instant

java - 更改静态变量

android - 如何在 Android 的自定义 ListView 中格式化 TextView