繁体   English   中英

如何在Java方法中将接口的实现作为变量传递?

[英]How to pass an implementation of an interface as a variable in a method in Java?

我们有一个Math接口。

我们有两个Math实现(例如,它们分别称为Math1Math2 )。 该项目的一小部分能够在两者之间进行切换。

在一个类(说其所谓的ClassName ),我们被我们的教师提供,我们有:

public static int evaluate(Math impl)

我有:

ClassName.evaluate(Math1);

它说找不到符号。 我尝试将其用引号引起来,但这是一个字符串。 我已经尝试过尝试使用Google进行搜索,但是找不到任何有帮助的东西(也许我只是在搜索错误的东西)。 这些文件位于同一软件包中。

如何通过接口实现?

您正在传递类名而不是类实例。

尝试这个:

// Evaluate with Math1.
Math m1 = new Math1();
ClassName.evaluate(m1);

// Evaluate with Math2.
Math m2 = new Math2();
ClassName.evaluate(m2);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM