当前位置: 首页 > 面试题库 >

Java in运算符

魏朗
2023-03-14
问题内容

对于百万分之一的时间,我希望使用INJava中的IN运算符,类似于SQL中的运算符。它可以作为编译器语法糖来实现。所以这

if (value in (a, b, c)) {
}
else if (value in (d, e)) {
}

…真的很棒。实际上,以上内容与此处相当冗长的(且不适用于原始类型)构造相同:

if (Arrays.asList(a, b, c).contains(value)) {
}
else if (Arrays.asList(d, e).contains(value)) {
}

或针对intlong和类似的类型:

switch (value) {
  case a:
  case b:
  case c:
    // ..
    break;

  case d:
  case e:
    // ..
    break;
 }

也许会有更有效的实现。

题:

这样的东西会成为Java 8的一部分吗?如果没有,我该如何提出建议?还是我现在可以使用任何等效的构造?


问题答案:

使用op4j:

Op.onListFor(a,b,c).get().contains(value);

使用相同的方法,你可以创建一个辅助类Is用的方法in

class Is<T> {
    private T value;

    public Is( T value ) { this.value = value; }

    public boolean in( T... set ) {
        for( T item : set ) {
            if( value.equals( item ) ) {
                return true;
            }
        }

        return false;
    }

    public static <T> Is<T> is( T value ) {
        return new Is<T>( value );
    }
}

使用静态导入,您可以编写:

if(is(value).in(a,b,c)) {
}


 类似资料:
  • 运算符是处理数据的基本方法,用来从现有的值得到新的值。JavaScript 提供了多种运算符,覆盖了所有主要的运算。 概述 JavaScript 共提供10个算术运算符,用来完成基本的算术运算。 加法运算符:x + y 减法运算符: x - y 乘法运算符: x * y 除法运算符:x / y 指数运算符:x ** y 余数运算符:x % y 自增运算符:++x 或者 x++ 自减运算符:--x

  • void 运算符 void运算符的作用是执行一个表达式,然后不返回任何值,或者说返回undefined。 void 0 // undefined void(0) // undefined 上面是void运算符的两种写法,都正确。建议采用后一种形式,即总是使用圆括号。因为void运算符的优先性很高,如果不使用括号,容易造成错误的结果。比如,void 4 + 7实际上等同于(void 4) + 7。

  • 我试图将我的模板化类的模板化成员函数的声明和定义分开,但最终出现了以下错误和警告。 ../HW06/BigUnsigned.h:13:77:警告:友元声明“std::oStream&operator<<(std::oStream&,const BigUnsigned&)”声明了一个非模板函数[-wnon-template-friend]友元std::oStream&operator<<(std::

  • 我做了这个密码 声明: 功能: 主要内容: 我得到这个错误: 错误1错误LNK2019:未解析的外部符号“class std::basic\U ostream 我试图在没有朋友的情况下写它,但却出现了另一个错误<我做错了什么?

  • 我相信这个片段足以分析错误。 编译代码时,会出现以下错误: 错误:传递'const EventClass'作为'std::字符串EventClass::getEventName()'的'this'参数丢弃限定符[-fpermissive] outStream 错误:传递'const EventClass'作为'int EventClass::getEventTime()'的'this'参数丢弃限定

  • 我正在学习C++中的运算符重载,我想知道下面代码的输出 我想知道,如果重载一个“<<”运算符以只打印一个参数int(显而易见),并且只想单独打印一个数字,如上面提到的代码中的“cout<<10”int会发生什么。那么编译器将如何决定,当我试图打印任何整数时,应该调用哪个函数。

  • Jesus answered them, "Those who are well don't need a physician, but those who are sick do. I have not come to call the righteous, but sinners to repentance."(LUKE 5:31-32) 运算符 在编程语言,运算符是比较多样化的,虽然在《常用

  • Shell运算符 Bash 支持很多运算符,包括算数运算符、关系运算符、布尔运算符、字符串运算符和文件测试运算符。 算术运算符 原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。 expr 是一款表达式计算工具,使用它能完成表达式的求值操作。 # 命令行直接计算 expr 2 + 2 #4 expr 3 - 2 #1 expr 3