比较在哪里

发布于 2024-12-13 22:36:06 字数 172 浏览 1 评论 0原文

我正在寻找一些具有静态函数的库,以消除比较“事物”的代码中的重复。

(evil.equals(s1) || evil.equals(s2) || evil.equals(s3))
(evil == enum1 || evil == enum2 || evil == enum3)

I'm looking for some library with static functions to eliminate duplication in code that compare "things".

(evil.equals(s1) || evil.equals(s2) || evil.equals(s3))
(evil == enum1 || evil == enum2 || evil == enum3)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

调妓 2024-12-20 22:36:06

你可以做类似的事情

Arrays.asList(s1, s2, s3).contains(evil)

那会短一点

You could do something like

Arrays.asList(s1, s2, s3).contains(evil)

That would be a little shorter

绮烟 2024-12-20 22:36:06

对于初学者来说怎么样:

boolean equalsAny(Object object, Object... others) {
    for (Object other : others) {
        if (other.equals(object))
            return true;
    }
    return false;
}

Object evil = ...;
SpecialClass special = ...;
AnotherClass another = ...;
if (equalsAny(evil, "aString", special, Integer.valueOf(42), another)) {
    // match found!
}

How about this for starters:

boolean equalsAny(Object object, Object... others) {
    for (Object other : others) {
        if (other.equals(object))
            return true;
    }
    return false;
}

Object evil = ...;
SpecialClass special = ...;
AnotherClass another = ...;
if (equalsAny(evil, "aString", special, Integer.valueOf(42), another)) {
    // match found!
}
二手情话 2024-12-20 22:36:06

对于第二行,使用 switch 语句会很好:

switch (evil) {
   case enum1:
   case enum2:
   case enum3:
      //code
      break;
}

For the second line, a switch statement would do nicely:

switch (evil) {
   case enum1:
   case enum2:
   case enum3:
      //code
      break;
}
芸娘子的小脾气 2024-12-20 22:36:06

我不知道有什么特殊的库,但是如果您不关心性能,则以下内容应该可以开箱即用:

Arrays.asList(s1, s2, s3).contains(evil);

没有列表创建开销的简单实现可能类似于:

public static boolean equalsAny(Object obj, Object ... others) {
    for (Object other: others) {
        if (obj.equals(other))
            return true;
    }

    return false;
}

I don't know a special library, but if you don't care about performance, the following should work out of the box:

Arrays.asList(s1, s2, s3).contains(evil);

A simple implementation without the overhead of list creation could be something like:

public static boolean equalsAny(Object obj, Object ... others) {
    for (Object other: others) {
        if (obj.equals(other))
            return true;
    }

    return false;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文