【问题标题】:How to pass an implementation of an interface as a variable in a method in Java?java - 如何在Java方法中将接口的实现作为变量传递?
【发布时间】:2013-04-12 23:45:21
【问题描述】:

我们有一个接口Math

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

在我们的讲师提供的课程中(比如说它称为ClassName),我们有:

public static int evaluate(Math impl)

我有:

ClassName.evaluate(Math1);

它说它找不到符号。我试着把它放在引号里,但那是一个字符串。我试图用谷歌搜索,但我没有找到任何有用的东西(也许我只是在寻找错误的东西)。这些文件在同一个包中。

如何通过接口实现?

【问题讨论】:

标签: java interface


【解决方案1】:

您传递的是类名而不是类实例。

试试这个:

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

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

【讨论】:

    猜你喜欢
    • 2019-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-03
    • 2012-02-09
    相关资源
    最近更新 更多