admin 管理员组

文章数量: 1087139


2024年4月18日发(作者:hidefocus true)

java toString()用法

2007-06-13 21:14

1.toString()方法

Object类具有一个toString()方法,你创建的每个类都会继承该方法。它返回对象的一个

String表示,并且对于调试非常有帮助。然而对于默认的toString()方法往往不能满足需求,

需要覆盖这个方法。

toString()方法将对象转换为字符串。看以下代码:

package sample;

class Villain {

private String name;

protected void set(String nm) {

name = nm;

}

public Villain(String name) {

= name;

}

public String toString() {

return "I'm a Villain and my name is " + name;

}

}

public class Orc extends Villain {

private int orcNumber;

public Orc(String name, int orcNumber) {

super(name);

ber = orcNumber;

}

public void change(String name, int orcNumber) {

set(name);

ber = orcNumber;

}

public String toString() {

return "Orc" + orcNumber + ":" + ng();

}

public static void main(String[] args) {

Orc orc = new Orc("Limburger", 12);

n(orc);

("Bob", 19);

n(orc);

}

}

结果:

@11b86e7

@11b86e7

如果去掉注释,即加入2个toString()方法后,得到

结果:

Orc12:I'm a Villain and my name is Limburger

Orc19:I'm a Villain and my name is Bob

2.在容器类中使用toString()

编写一个工具类,用于在控制台输出Iterator。

import or;

public class Printer {

static void printAll(Iterator e){

while(t()){

n(());

}

}

}

在Hamster类中重写父类的toString()方法。

public class Hamster {

private int hamsterNumber;

public Hamster(int hamsterNumber){

rNumber=hamsterNumber;

}

public String toString(){

return "This is Hamster #"+hamsterNumber;

}

}

在HamsterMaze类中使用容器类加载Hamster类对象并输出结果。

import ist;

import ;

public class HamsterMaze {

@SuppressWarnings("unchecked")

public static void main(String[] args){

List list=new ArrayList();

for(int i=0;i<3;i++)

(new Hamster(i));

ll(or());

}

}

结果:

This is Hamster #0

This is Hamster #1

This is Hamster #2

3.一个实现toString()的通用的Bean

在作一个项目时发现,许多bean需要实现toString()方法,就实现一个通用的bean,然后通

过其他继承即可。

import ;

public class BaseBean {

public String toString() {

StringBuffer sb = new StringBuffer();

try {

Class t = ss();

Field[] fields = laredFields();

for (int i = 0; i < ; i++) {

Field field = fields[i];

essible(true);

("{");

(e());

(":");

if (e() == ) {

((this));

} else if (e() == ) {

(g(this));

} else if (e() == ) {

(lean(this));

} else if (e() == ) {

(r(this));

} else if (e() == ) {

(ble(this));

} else if (e() == ) {

(at(this));

} else

((this));

("}");

}

} catch (Exception e) {

tackTrace();

}

return ng();

}

}

测试类

public class TestBean extends BaseBean {

private int id;

public int getId() {

return id;

}

public void setId(int id) {

= id;

}

public static void main(String[] args) {

TestBean testBean = new TestBean();

(9);

n(ng());

}

}

结果

{id:9}


本文标签: 方法 对象 输出 需要 调试