java - Java中的泛型+可选参数不能组合

标签 java generics

我正在为以下问题寻找一个优雅的解决方案:

//one interface
public interface MyInterface () {
}
//two implementations
public class ImplA implements MyInterface (){ 
}
public class ImplB implements MyInterface () {
}

在另一个类中:

//one generic method
public void myMethod(Class<MyInterface>... myTypes) {
  for (Class<MyInterface> myType : myTypes) {
     System.err.println("my Type:" +myType);
  }
}

问题是您不能简单地调用此方法:

myMethod(ImplA.class, ImplB.class);

这根本不被接受。可选参数和泛型真的不能结合吗?我找不到任何例子。

最佳答案

我会努力

public void myMethod(Class<? extends MyInterface>... myTypes) {

Class<MyInterface>必须是 MyInterface.class不是子类。

关于java - Java中的泛型+可选参数不能组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12283119/

相关文章:

javascript - AJAX:单击提交按钮时加载 URL

java - 如何 append 到整数

c# - 将附加数据传递给 Blazor 组件中的通用 RenderFragment

c# - 使用类和接口(interface)定义通用对象

c - void** 是可移植的 C 吗?

java - RxJava 用于用户注册

java - 如何从 Windows 运行 ZooInspector

java - 如何识别哪些类型可以被泛化?

java - LWJGL 无法使用 OpenGL 3.2 或更高版本

c# - 如何从 C# 中的 Action<T> 委托(delegate)调用非静态方法