在 Java 中将接口类作为参数传递

2022-09-01 04:20:42

我有一个接口:

public interface IMech {

}

和实现它的类

public class Email implements IMech {

}

以及实现此方法的第三个类:

public void sendNotification( Class< IMech > mechanism ){
}

现在我正在尝试像这样调用该方法

foo.sendNotification(Email.class);

但我一直得到一个例外说:

The method sendNotification(Class<IMech>) in the type RemediationOperator is not applicable for the arguments (Class<Email>)

如果它与该类接口,这难道不起作用吗?


答案 1

也许你需要

public void sendNotification( Class<? extends IMech> mechanism ) { 

答案 2

因为这两个类和它们本身没有继承关系,即使和Class<IMechanism>Class<EmailNotification>IMechanismEmailNotification

您需要使您的方法接受 .Class<? extends IMechanism>