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

Java中的stackoverflow错误

满自明
2023-03-14
问题内容

我是Java的新手。我正在编写一个类,其中构造函数必须检查price参数并确保它不是负数。如果它是负数,则必须将价格设置为零。我检查价格时收到stackoverflow错误。我可以为我做错的事寻求帮助吗?

public class Book
{
    private String title;
    private String author;
    private String isbn;
    private int pages;
    private boolean pback;
    private double price;

    /**
     * Constructor for objects of class Book
     */
    public Book(String bookTitle, String bookAuthor, String bookCode, int bookPages, boolean paperback, double bookRetail)
    {
        title = bookTitle;
        author = bookAuthor;
        isbn = bookCode;
        pages = bookPages;
        pback = paperback;
        price = bookRetail;
    }

    /**
     * @returns title
     */

    public String gettitle()
    {
        return title;
    }

   /**
    * @returns author
    */

    public String getauthor()
    {
        return author;
    }

   /**
    * @returns ISBN#
    */

   public String getisbn()
    {
        return isbn; 
    }

   /**
    * @return number of pages
    */

   public int getpages()
    {
        return pages;
    }

   /**
    * @return is book paperback
    */

   public boolean getpback()
    {
        return pback;
    }

   /**
    * @return retail price
    */

   public double getprice() 
   {
       if(getprice() < 0)
       {
           return 0;
       } 
       else
       {
           return price;
       }

    }
}

问题答案:

您的getprice()方法将自行调用而不是进行检查price。在这种情况下,这导致无限递归



 类似资料:
  • 我在java中使用play框架(ebean是我的ORM),我有这个类: 我正在尝试使用Gson库对其进行序列化。我试着这么做 但我总是会犯这样的错误: 我读了很多关于这方面的书,我知道在序列化Reservation对象时,可能会在某个地方发生无限循环,但由于该对象与任何其他类没有任何关系,我不明白为什么会发生这种情况。

  • 我已经知道有很多问题都在问同样的问题,但它们对我不起作用- 它给出堆栈溢出错误。 有用但不合适的答案- 1)添加前的代码和添加后的代码-这一个作品,但不正常,应用程序变得非常慢。 还有其他方法可以帮我吗?谢谢。

  • 我正在开发一个混合了传统JSP servlet代码和较新的JSF代码的应用程序。我遇到了一个我无法解决的StackOverlow错误。有没有人见过或经历过类似的事情,可以帮助我在这种混合JSP/JSF应用程序上找到正确的方向? 我很确定JSF框架正在尝试在非JSF页面上做一些事情,并且在JSF框架中陷入了递归循环。我正在集群WebLogic 12.1.3环境中使用JSF 2.1.20。我没有在EA

  • 我在使用HTTPUrlConnection时遇到了一些问题。代码基本上是在循环中运行的,每次都连接到不同的URL,检查响应,如果响应满足某些条件,则退出。我被StackOverflowerr搞砸了,但我不确定自己搞砸了什么。我没有使用

  • 问题内容: 我正在使用mapstruct映射我的实体和dto类…我在mapper类上存在循环问题… 我没有想法该怎么办…这是我的映射器课程 我的实体类… DTO与我的实体类具有相同的属性… 堆栈轨迹 有人可以帮助我确定为什么循环吗? 问题答案: 和之间存在循环依赖关系。您有3种可能性来解决周期: 一个映射器将始终忽略循环字段。我看到您在的清单中。您可以通过在映射器中忽略它们。 您将拥有显式映射,这