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

从void和boolean方法返回多个值

翟博雅
2023-03-14

我有以下问题:有一个计算两个整数之间相似性的布尔静态方法,我被要求返回4个结果:

  1. 在不更改方法的返回类型的情况下,它应该保持布尔值。
  2. 不更新/使用外部变量和对象的值
public static boolean isSimilar(int a, int b) {
    int abs=Math.abs(a-b);
    if (abs==0) {
    return true;
    } else if (abs>10) {
    return false;
    } else if (abs<=5){
        //MUST return something else, ie. semi-true
    } else {
        //MUST return something else, ie. semi-false
    }
}

共有1个答案

益绯辞
2023-03-14

下面的做法无论如何都是不好的,但是如果您可以尝试捕获异常,实际上您可以按照约定定义一些额外的输出。例如:

public static boolean isSimilar(int a, int b) {
    int abs = Math.abs(a-b);
    if (abs == 0) {
        return true;
    } else if (abs > 10) {
        return false;
    } else if (abs <= 5){
        int c = a/0; //ArithmeticException: / by zero (your semi-true)
        return true; 
    } else {
        Integer d = null;
        d.intValue(); //NullPointer Exception (your semi-false)
        return false;
    }
}
 类似资料:
  • 我已经使用RxJava编写了一个存储库,但在找到处理对repo的写入和删除的最佳方法时遇到了麻烦。 我找到了2个潜在的解决方案,但不确定它们的正确程度: 1)使用启动一个observable,然后使用副作用方法调用存储库的方法。这是可行的,看起来很奇怪,但它允许我使用RxJava,并允许我指定要订阅的线程/要观察的线程,这使得线程处理变得容易,并且允许存储库的API保持不变,这样它仍然返回void

  • 我相信这是一个愚蠢的问题,但我已经讨论了很久了。。我试图创建一个java程序,根据用户输入的年数和金额计算复利。但我一直遇到一个错误,void方法无法返回值。因此,我将方法切换为double,因为这是将返回的内容,但它告诉我double方法必须返回double。即使我在循环中返回一个双倍。。。请帮忙

  • 查看javadoc,我看到ArrayList有一个重载的add方法: 公共布尔加法(E E) 将指定的元素追加到此列表的末尾。 所以我去了收藏。添加(E): 布尔加法 确保此集合包含指定的元素(可选操作)。如果此集合由于调用而更改,则返回true。(如果此集合不允许重复并且已包含指定的元素,则返回false。) 这样,如果在集合中,则不采取任何操作。为什么返回而不是方法更好呢?

  • 我想创建一个任务来运行串行命令。此时,我不需要从正在进行工作的方法返回任何内容。这可能会在以后发生变化,但我现在很好奇这是如何发生的。 这就是我所拥有的。我想为任务使用单独的方法,而不是创建匿名操作。我尝试返回void,结果是“void不能显式转换为任务”。我也试过了<代码>任务 在此过程中,我使用了一个线程来完成这项任务,但这次我想使用任务。 预计到达时间: 最后,这是我的完整解决方案

  • 按照说明:编写一个静态方法,将一个整数作为形参,如果参数值为偶数,则返回布尔值True,如果参数值为奇数,则返回False。我的方法似乎必须调用int而不是布尔值。话虽如此,我不知道如何从调用int的方法返回布尔值。我试过了,但不管用。 编辑语言是Java。\nedit 2-对于将来关注此问题的人来说,我最初的意思是键入私有静态int result。不是私有的静态布尔结果。那个错误最终修复了我的代

  • 问题内容: 我想从Java方法返回两个对象,并且想知道这样做的好方法是什么? 我能想到的可能的方法是:回报HashMap(因为这两个对象是相关的),或者返回的对象。 更准确地说,我要返回的两个对象是(a)对象和(b)相同名称的逗号分隔。 我想从一个方法返回这两个对象,因为我不想遍历对象列表以获得逗号分隔的名称(我可以在此方法的同一循环中执行此操作)。 不知何故,返回a 看起来不是很优雅的方式。 问