当前位置: 首页 > 知识库问答 >
问题:

操作其他类的方法[重复]

司马耘豪
2023-03-14

Java中Vector类的contains()方法可以从另一个类操作吗(不扩展Vector类)?

假设我们有这个:

class AuxType {
    String name;
    int type;

    AuxType(String name, int type) {
        this.name = name;
        this.type = type;
    }
}

class Main {
    void aMethod() {
        Vector<AuxType> v = new Vector<AuxType>();
        v.add(new AuxType("a", 1));
        v.add(new AuxType("b", 2));
        v.add(new AuxType("c", 3));

        for (int i = 0; i < v.size(); i++) {
            if (v.get(i).type == 2) {
                System.out.println("Found it!");
            }
        }
    }
}

for/if行可以写成

if (v.contains(2)) {
    //
}

是否有一种方法可以改变contains()的工作方式(在AuxType类中或在Main的aMethod()函数中)?

编辑:不是副本

我不是在问从一个类中调用一个方法,而是在不扩展那个类的情况下改变它。

共有1个答案

虞安康
2023-03-14

你要找的叫做mixin,不,Java里没有。

在Java中,这个问题是通过使用继承来解决的(虽然有点冗长,但这确实很有意义)。

从理论上讲,无需直接定义新类即可动态添加方法,但这对于任务来说确实很复杂且过头了。

只需扩展该类或定义一个实用方法。

 类似资料:
  • 其他操作 执行 sudo mn -c 会进行清理配置操作,适合故障后恢复。 执行 exit 会退出 Mininet 的 CLI,同时给出运行时间统计。 py cmd 使用 Python 来执行 cmd。 测试 Mininet 启动后立刻关闭的时间可以用 sudo mn --test none。

  • 问题内容: 如果我有两个类,而其中一个有一个要在其他类中使用的函数,那么该使用什么,这样就不必重写我的函数了? 问题答案: 有两种选择: 在您的类中实例化一个对象,然后在其上调用所需的方法 使用@classmethod将函数转换为类方法 例: 或使用继承(如果适用):

  • 问题内容: 假设我正在构建一个井字游戏(因为它与结构非常相似),我希望结果在弹出窗口中显示,并带有一个新的游戏按钮,并且希望此弹出窗口允许我访问设置(另一个按钮)并对其进行更改,使其始终位于弹出窗口中,然后离开并最终将其关闭并开始新游戏。 我希望我可以保持秩序,因此有一个单独的弹出窗口类,可以在其中构建自定义弹出窗口。 显而易见,我将newgame方法和reset方法作为我的游戏网格类的方法。另一

  • 这一章会讲解无法通过repository接口直接使用的其他Elasticsearch操作。建议像自定义repository实现这章中描述的那样为repository添加自定义的实现。

  • 问题内容: 在下面的代码中,我试图一次性进行多个(大约10个)HTTP请求和RSS解析。 我在需要访问和解析结果的URI数组上使用标准构造。 码: 我了解一次调用函数时,应该使用回调。但是,在此示例中,我唯一想到使用回调的方法是调用一个函数,该函数对被调用的次数进行计数,并且仅在被调用的次数与看起来很hacky 的次数相同时才继续。 所以我的问题是, 在node.js中处理这种情况的最佳方法 是

  • 其他认证方法 还有两种其他身份验证方法值得一提。它们是一次性密码和证书。 一次性密码 FreeRADIUS包含一个名为rlm_otp的模块,可用于处理OTP(一次性密码)令牌。该模块应与其他程序一起使用。 不幸的是,为其他程序提供代码的公司Tri-D Systems已经不存在了。但是,代码是分叉的,现在可以从Google Code(http://code.google.com/p/otpd/)获得