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

如何在Java中正确覆盖toString()?

常博裕
2023-03-14
问题内容

我需要toString()方法方面的帮助,这非常令人讨厌。我尝试在线查找,因为那toString是一个正在搞砸的地方,即使在那里,它也“找不到2号Kid构造函数”,我什至会做其他事情,但它不起作用。好了,所以这是我的代码:

import java.util.*; 
   class Kid {  
      String name; 
      double height; 
      GregorianCalendar bDay; 

      public Kid () { 
         this.name = "HEAD";
         this.height = 1; 
         this.bDay = new GregorianCalendar(1111,1,1); 
      } 

      public Kid (String n, double h, String date) {
      // method that toString() can't find somehow
         StringTokenizer st = new StringTokenizer(date, "/", true);
         n = this.name;
         h = this.height;
      } 

      public String toString() { 
         return Kid(this.name, this.height, this.bDay);
      } 
   } //end class 

好的,所以我上面的toString(我知道,我的第三个参数已关闭,应该是String)已关闭。如果我在第三件事中硬编码一个值,它就会变成麻烦,并说找不到它(上面)。那么如何获取日期并将其拆分呢?

调用此的类如下

class Driver {   
   public static void main (String[] args) {   
      Kid kid1 = new Kid("Lexie", 2.6, "11/5/2009");   
      System.out.println(kid1.toString());
   } //end main method 
} //end class  

我尝试研究多个构造函数,但这确实没有帮助。我尝试研究toString()方法,并尝试使用以前toString()创建的逻辑,但这是全新的,因此从未奏效。


问题答案:

toString应该返回String

public String toString() { 
    return "Name: '" + this.name + "', Height: '" + this.height + "', Birthday: '" + this.bDay + "'";
} 

我建议你利用IDE的功能来生成该toString方法。不要手工编码。

例如,如果你只需右键单击源代码并选择Eclipse,便可以这样做。 Source > Generate toString



 类似资料:
  • 我正在尝试重写方法。但我还是发现了错误: 马塞尔

  • 我应该使用哪个保险套件?是Eclemma还是Jacoco? 如何使用覆盖包运行该工具?我应该把它添加到build.xml文件中吗?我应该把它添加到命令行吗? 我对Java中覆盖的整个概念有点困惑。在Python和Perl等动态语言中,我只需使用coverage模块执行代码,该模块创建coverage报告。 我们用来执行out工具的命令: 我很难理解和。我试图覆盖的文件是。在的某个内部文件夹中有,在

  • 问题内容: 我需要在我的没有超类的对象中实现一个深层克隆。 处理超类(即Object)引发的检查的最佳方法是什么? 一位同事建议我按以下方式处理: 对于我来说,这似乎是一个不错的解决方案,但我想将其扔给StackOverflow社区,以查看是否有我可以提供的其他见解。谢谢! 问题答案: 您绝对必须使用吗?大多数人都同意是坏的。 Josh Bloch谈设计-复制构造函数与克隆 如果您已经阅读了我书中

  • 问题内容: 我试图覆盖Java中的方法。我有一堂课,基本上有2个数据字段和。现在,我想重写方法,以便可以在2个对象之间进行检查。 我的代码如下 但是当我写它给我错误时,因为方法只能比较并且是。 Solution 我按照建议使用运算符,问题解决了。 问题答案: Output: `run: – Subash Adhikari - VS - K false – Subash Adhikari - VS

  • 我有一个内部application.yml配置文件,位于classpath上的resources文件夹中。 我有一个外部配置文件:/home/username/config.properties,它覆盖一些字段以在服务器上下文中运行。 我如何实现这个预期的结果? 编辑:这个问题只发生在Linux上。当我在Windows10机器上用覆盖的配置文件运行它时,它可以正常工作。

  • 问题内容: 我正在尝试为外部应用程序创建HUD样式显示。 为此,我需要创建一个透明的叠加窗口,该窗口将位于外部应用程序窗口的顶部。覆盖窗口应允许我放置小部件并在其上绘制文本。如果事件发生在透明区域上,则事件应该转发到基础窗口(否则,使窗口小部件可以按预期工作)。 我正在使用Java的OSX上执行此操作。我希望可以使用纯Java来实现此目的,并且可以移植到其他平台,但如果不可能的话,我会选择可以通过