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

Java三元组,无需分配

萧鸿轩
2023-03-14
问题内容

有没有一种方法可以执行Java三元操作而无需进行赋值或伪造该伪造?

我喜欢做一堆if / then / elses时简洁的三元代码

我希望能够基于布尔代数语句调用两个void函数之一。

就像是:

(bool1 && bool2) ? voidFunc1() : voidFunc2();

我的函数是return类型的void,因此,如果有一种方法可以在赋值中伪造此函数以使其起作用,那么我可以…不过我想看看如何做到这一点:)


问题答案:

不,你不能那样做。该规范是这么说的。

条件运算符具有三个操作数表达式。?:出现在第一和第二个表达式之间,而:出现在第二和第三个表达式之间。

第一个表达式的类型必须为boolean或Boolean,否则会发生编译时错误。

第二个操作数 表达式 或第三个操作数 表达式调用 void 方法 都是编译时错误

[编辑]

由于您询问反射问题,因此这里有一个解决方案。我不建议这样做。我发布它只是因为你问。

public class MyCall
{

    public void a(){System.out.println("a");}
    public void b(){System.out.println("b");}

    public static void main(String... args)
    {
        new MyCall().go();
    }

    public void go()
    {
        Class<? extends MyCall> class1 = this.getClass();
        Method aMethod = class1.getMethod("b", null);
        Method bMethod = class1.getMethod("a", null);
        Object fake = false ? aMethod.invoke(this, null) : bMethod.invoke(this, null);
        Object fake2 = true ? aMethod.invoke(this, null) : bMethod.invoke(this, null);
    }
}

在一天结束时,您必须问自己是否简洁可以提高代码的可读性(想想每个循环)。这些解决方案都不能提高代码的可读性恕我直言。如果我是你,我宁愿去。

if(condition)
    a();
else
    b();

实际上 即使循环只包含一行,我还是要包含括号,但是由于要使用清晰的代码,因此上面的代码片段应该可以。



 类似资料:
  • 本节介绍稀疏矩阵的三元组 顺序表压缩存储方式。 通过《 矩阵的压缩存储》一节我们知道,稀疏矩阵的压缩存储,至少需要存储以下信息: 矩阵中各非 0 元素的值,以及所在矩阵中的行标和列标; 矩阵的总行数和总列数; 图 1 稀疏矩阵示意图 例如,图 1 是一个稀疏矩阵,若对其进行压缩存储,矩阵中各非 0 元素的存储状态如图 2 所示: 图 2 稀疏矩阵的压缩存储示意图 图 2 的数组中,存储的是三元组(

  • 问题内容: 是否可以更改此: …对三元运算符? 问题答案: 好吧,中的行为就像这样…… …另一种看待它的方式… 你的问题有点含糊,我们必须在这里假设。 如果(且仅当)声明了一个返回值(,等。)-现在看来似乎没有做到这一点通过你的代码-那么你可以做到这一点… 如果callFunction(…)不返回值,那么你将无法使用三元运算符!就那么简单。你将使用不需要的东西。 请发布更多代码以清除所有问题 尽管

  • 问题内容: 有人可以解释为什么这样的代码吗? 产生以下编译器错误: 不兼容的条件操作数类型ArrayList和HashSet 由于我不明白的原因,以下内容解决了该问题 我正在使用Java 1.4。 问题答案: 这是1.4 中的 错误 ,并已根据bugreport 5080917 进行了修复。 评估 这是一个错误。 xxxxx @ xxxxx 2004-07-30

  • 我有一个单词流,我想根据相同元素的出现对它们进行排序。 例如:{hello,world,hello} 至 你好,{你好,你好} 谢谢你

  • 我对Powershell 5.1中的三元运算符有一个问题。如果我尝试分配数组@(...),它无法按预期工作: 输出: 关于三元运算符的一条线索并没有为我澄清这一点。(PowerShell中的三元运算符) 更新:$d需要是一个数组,以及两个内部项目。为了简单起见,这里只显示了一个字符串常量。

  • 问题内容: 我有一个这样的(标签,计数)元组列表: 由此,我想对所有具有相同标签的值求和(相同的标签始终相邻),并以相同的标签顺序返回列表: 我知道我可以用以下方法解决它: 但是,有没有更Pythonic /优雅/有效的方法来做到这一点? 问题答案: 可以做你想做的: