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

如何返回与方法中指定的值不同的值?

娄振
2023-03-14

方法应返回类型Animal的值。如果出现问题,我想指出存在错误,正确的技术是什么?以防我不想出错。我可以返回什么来代替动物类型?

public static Animal make_child(Animal a, Animal b) {
   // Create a child if both animals of different male
   Animal c;
   if (a.male == b.male) {
      return null;
   }
   c = new Animal(...);
}

共有3个答案

张财
2023-03-14

Аdd类动物中的一个类字段,用于指示是否出现问题。

或者你可以创建一个子类EmptyAnimal来扩展Animal,创建并返回这个类型,然后像这样检查返回值

Animal newborn = make_child(a,b);
if (newbor instanceof EmptyAnimal){
    System.out.println("something goes wrong");
}
彭阳荣
2023-03-14

如果出错,您应该抛出一个异常。

throw new Exception("Something went wrong.")

我建议您熟悉以下异常处理:https://www.baeldung.com/java-exceptions

伯和蔼
2023-03-14

我建议对这类问题使用异常处理,这里有一个链接https://www.javatpoint.com/exception-handling-in-java,但如果不想使用它,可以像在上面的异常中那样返回null。当你调用这个方法,结果为空时,你就能够区分正确的动物和错误的动物。例如:

//do you really want this method static?
    public static Animal make_child(Animal a, Animal b) {
         // Create a child if both animals of different male
           Animal c;
           if (a.male == b.male) {
              return null;
           }
           c = new Animal(...);
        }
     public static void isNewbornBoyOrGirl(Animal a, Animal b) {
        Animal newborn = make_child(a,b);
        if(newborn == null)
        {
          System.out.println("An error has occured!");
          return;
//if the newborn is null, a print will be displayed and afterward it will exit the current method 
        }
        // do stuff with newborn as it is not null after calling the method above
    
    }
 类似资料:
  • 在我的应用程序中,有一个计算得到两个日期之间的天数。计算如下所示; 此方法在我的本地pc(windows 7,64位)上返回正确的值(即2015-03-10 00:00:00.0、2015-03-02 00:00:00.0,从存储库中检索的值为8,并传递给该方法)。但是,此方法在位于加拿大的pc(Windows 7,64位)上返回不正确的值(即2015-03-10 00:00:00.0、2015-

  • 这是我的实际服务方法。在测试时,它给我的变量为空。用户和响应 我试图写一个测试用例和模拟方法findByEmail()和保存(),但同时嘲笑我没有收到用户对象在返回中提到的thenback()和doback()。 有人能帮忙吗。

  • 问题内容: 在Go中,有多种方法可以返回值或其片段。对于个人,我已经看到: 我了解两者之间的区别。第一个返回该结构的副本,第二个返回指向在函数内创建的结构值的指针,第三个期望传入现有结构并覆盖该值。 我已经看到所有这些模式都可以在各种情况下使用,我想知道关于这些的最佳实践是什么。什么时候使用?例如,第一个可能适用于小型结构(因为开销很小),第二个适用于较大的结构。第三,如果您想提高存储效率,因为您

  • 在Go中,有多种方法可以返回< code>struct值或其片段。对于我见过的个别例子: 我理解它们之间的区别。第一个返回结构的副本,第二个是指向在函数中创建的结构值的指针,第三个期望传入现有结构并覆盖该值。 我看到所有这些模式都在不同的环境中使用,我想知道关于这些模式的最佳实践是什么。你什么时候用?例如,第一个可以用于小结构(因为开销最小),第二个可以用于大结构。第三,如果你想非常节省内存,因为

  • 我在应用程序中编写了以下代码。 它在“asp.net核心”和“标准”框架中有不同的行为。 框架 4.7:如果我在 .net 标准框架中创建的网站/控制台应用程序中使用此代码,它总是给我相同的结果。哈希码变量的值始终为“1066337973”。 Asp.net核心:如果我将在ASP.NET核心网站使用这段代码,那么每次我停止应用程序并重新启动时,hashcode变量都有不同的值。 由于这个问题,我的

  • 我试图解决一个问题,我必须在搜索中得到明确的结果。 当我对最喜欢的汽车“法拉利”执行术语查询时。我得到两个名为ABC的结果。在这种情况下,我只是希望返回的结果应该是一个。所以我的要求是,如果我可以应用一个不同的on name字段来接收一个1结果。 谢啦