展开全部

1.toString()方法e69da5e887aa3231313335323631343130323136353331333262353935

Object类具有一个toString()方法,你创建的每个类都会继承该方法。它返回对象的一个String表示,并且对于调试非常有帮助。然而对于默认的toString()方法往往不能满足需求,需要覆盖这个方法。

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

package sample;

class Villain {

private String name;

protected void set(String nm) {

name = nm;

}

public Villain(String name) {

this.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);

this.orcNumber = orcNumber;

}

public void change(String name, int orcNumber) {

set(name);

this.orcNumber = orcNumber;

}

public String toString() {

return "Orc" + orcNumber + ":" + super.toString();

}

public static void main(String[] args) {

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

System.out.println(orc);

orc.change("Bob", 19);

System.out.println(orc);

}

}

结果:

sample.Orc@11b86e7

sample.Orc@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 java.util.Iterator;

public class Printer {

static void printAll(Iterator e){

while(e.hasNext()){

System.out.println(e.next());

}

}

}

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

public class Hamster {

private int hamsterNumber;

public Hamster(int hamsterNumber){

this.hamsterNumber=hamsterNumber;

}

public String toString(){

return "This is Hamster #"+hamsterNumber;

}

}

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

import java.util.ArrayList;

import java.util.List;

public class HamsterMaze {

@SuppressWarnings("unchecked")

public static void main(String[] args){

List list=new ArrayList();

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

list.add(new Hamster(i));

Printer.printAll(list.iterator());

}

}

结果:

This is Hamster #0

This is Hamster #1

This is Hamster #2

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

在作一个项目时发现,许多bean需要实现toString()方法,就实现一个通用的bean,然后通过其他继承即可。

import java.lang.reflect.Field;

public class BaseBean {

public String toString() {

StringBuffer sb = new StringBuffer();

try {

Class t = this.getClass();

Field[] fields = t.getDeclaredFields();

for (int i = 0; i < fields.length; i++) {

Field field = fields[i];

field.setAccessible(true);

sb.append("{");

sb.append(field.getName());

sb.append(":");

if (field.getType() == Integer.class) {

sb.append(field.getInt(this));

} else if (field.getType() == Long.class) {

sb.append(field.getLong(this));

} else if (field.getType() == Boolean.class) {

sb.append(field.getBoolean(this));

} else if (field.getType() == char.class) {

sb.append(field.getChar(this));

} else if (field.getType() == Double.class) {

sb.append(field.getDouble(this));

} else if (field.getType() == Float.class) {

sb.append(field.getFloat(this));

} else

sb.append(field.get(this));

sb.append("}");

}

} catch (Exception e) {

e.printStackTrace();

}

return sb.toString();

}

}

测试类

public class TestBean extends BaseBean {

private int id;

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public static void main(String[] args) {

TestBean testBean = new TestBean();

testBean.setId(9);

System.out.println(testBean.toString());

}

}

结果

{id:9}

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/liumx2007/archive/2008/08/23/2817567.aspx

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

java arraylist add时默认调用tostring_java中如何调用toString命名的方法?相关推荐

  1. java arraylist add时默认调用tostring_从一道例题谈Arrays.toString()与其他String的转换方法...

    有了上述基础后,我接下来谈谈从一道题目中获得的些许收获. 今天在做题是发现了非常重要的一点.题目来源:http://www.lintcode.com/en/problem/anagrams/ 我们先来 ...

  2. java arraylist add时默认调用tostring_Java基础知识之ArrayList知识点总结

    本文包含常见的ArrayList的基本知识.在一些主题下也自然地引出了Colletion类的一些相关知识. 一.ArrayList的底层数据结构 ArrayList底层是使用一个Object[]数组来 ...

  3. [重学Java基础][Java IO流][Exter.2]IO流中几种不同的读写方法的区别

    [重学Java基础][Java IO流][Exter.2]IO流中几种不同的读写方法的区别 Read 读入方法 read(): 一般是这种形式 public int read() 1.从流数据中读取的 ...

  4. java arraylist.add(),Java ArrayList add()方法与示例

    ArrayList类add()方法 语法:public boolean add(T ele); public void add(int indices, T ele);add()方法在java.uti ...

  5. Java ArrayList add()方法与示例

    ArrayList类的add()方法 (ArrayList Class add() method) Syntax: 句法: public boolean add(T ele); public void ...

  6. Java继承,子类默认在构造函数中用super()调用父类构造函数

    1.子类继承父类的方法属性,并重写父类的方法,子类修饰符不能比父类方法的修饰符的范围狭窄. 2.子类必须在构造函数中使用super()来调用父类的构造函数 说明:1.父类没有写构造函数(系统默认有一个 ...

  7. java web配置dll文件_JavaWeb项目中dll文件动态加载方法解析(详细步骤)

    相信很多做Java的朋友都有过用Java调用JNI实现调用C或C++方法的经历,那么Java Web中又如何实现DLL/SO文件的动态加载方法呢.今天就给大家带来一篇JAVA Web项目中DLL/SO ...

  8. mutations vuex 调用_Vuex中的Mutations的具体使用方法

    在 Vuex 中 store 数据改变的唯一方法就是提交 mutations.mutations里面装着一些改变数据方法的集合,这是Vuex 设计很重要的一点,就是把处理数据逻辑方法全部放在 muta ...

  9. java 判断手机运营商_Java开发中识别手机运营商的方法

    在Java开发中程序需要根据用户输入的号码判断运营商,这该怎么实现呢?而我们需要根据不同的运营商进行相应的处理,下面是爱站技术频道小编介绍的Java开发中识别手机运营商的方法. js实现方法: var ...

最新文章

  1. 网页设计师的必备选择20 +必需的Windows应用程序
  2. qu.la网站上的小说爬取
  3. hdfs 数据迁移_基于JindoFS+OSS构建高效数据湖
  4. python使用缩进作为语法边界-俄罗斯方块之Python实现代码(一)
  5. ubuntu开启ssh
  6. 02-C#入门(循环)
  7. Android开发之修改项目的仓库地址亲测有效
  8. 基于sobel算法的边缘检测设计与实现
  9. c语言博客作业03-函数
  10. 大数据分析过程中包含哪些技术
  11. [分享]如何开机后直接进入桌面
  12. 基于matlab的暴雨强度公式参数推求,小样本流域降雨强度公式和设计降雨分布的推求方法...
  13. mysql与java编写人事管理系统,java+mysql企业人事管理系统的设计
  14. 诈骗云集投诉不断,“云相亲”靠谱吗?
  15. 网站如何被百度蜘蛛快速抓取?
  16. 四分位数算法记录(含java代码实现)
  17. 20165219王彦博第一周学习总结
  18. mx250显卡天梯图_MX250和150差别大吗?MX250和MX150区别对比 (全文)
  19. InputNumber 数字输入框
  20. 毕设java 电脑配件购物商城论文

热门文章

  1. 售价17999元起,华为Mate X2发布;程序员10万“买”了个北京户口;赏金猎人获苹果5000美元奖励 | 极客头条...
  2. 微软、阿里抢占开源一线,JavaScript、Python 备受热捧,GitHub 2020 数字洞察报告揭晓!...
  3. 13 年 29 款手机,从激进到求稳,iPhone 都经历什么?
  4. 2020年CSDN最后一波上车机会,快来~~
  5. JavaScript 霸榜、TypeScript 爆发、开源吞噬世界,GitHub 年度报告正式发布!
  6. 腾讯向开放原子开源基金会捐赠TencentOS tiny、TKEStack两大项目!
  7. 两天,我把分布式事务搞完了!
  8. 每 2.35 个月开发一款新游戏,这个公司是如何做到的?
  9. 探究 Spring 的定时任务配置
  10. 苹果官网以旧换新价格暴跌;戴威退出 ofo 法人代表及高管;TensorFlow 2.1.0 发布| 极客头条...