java之toString方法

1 java自带的有toString方法。不过一些时候会隐士的调用类对象的toString方法。当通过System.out.println()时,参数为类对象。这时就会调用类对象的toString方法。你可以重载toString方法。可以在toString方法中返回自己想要的结果。
!!!!可以说:如果方法的参数需要为字符串时,而参数是类对象时会自动调用类对象的toString方法转化为字符串。
为什么说是隐士的调用呢。是因为在jar都调用好了。
如:


package test1;


public class TestA {


private String name;
private String value;
public TestA() {
super();
// TODO Auto-generated constructor stub
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}

@Override
public String toString() {
// TODO Auto-generated method stub
return "{name:"+name+","+"value:"+value+"}";
}

}




//测试函数:
TestA test=new TestA();
test.setName("xcl");
test.setValue("8000");
System.out.println(test);//隐士的会调用该类的toString方法。因为该方法的参数类型为字符串,所以当为类对象时会隐士调用类对象的toString方法




2 还有可以直接调用toString方法。把需要返回的结果放在toString方法中进行组合。把类对象想要返回的为字符串的内容放在toString方法中进行组合拼接。
如:public class Commond {


private List<TestA> testList=new ArrayList();


public Commond() {
super();
// TODO Auto-generated constructor stub
}


public void add(TestA test){
testList.add(test);
}

public String toString(){
return testList.toString();
}


}




//测试函数:
TestA test=new TestA();
test.setName("xcl");
test.setValue("8000");
System.out.println(test);//隐士的会调用该类的toString方法。因为该方法的参数类型为字符串,所以当为类对象时会隐士调用类对象的toString方法

Commond commond=new Commond();
commond.add(test);

TestA test1=new TestA();
test1.setName("ddd");
test1.setValue("ddd1111");
commond.add(test1);

System.out.println(commond);

JSONObject json=new JSONObject();
json.element("data",commond.toString());//直接调用toString方法。
String neirong=json.toString();
System.out.println(neirong);



3 发现String.valueOf()方法的参数为Object时。看了下源代码。会调用Object对象的toString方法。就是说当通过String.valueOf(Object x)参数为类对象时。想要转化为字符串,会调用该类对象的toString方法。
如:
TestA test=new TestA();
test.setName("xcl");
test.setValue("8000");

new TestMain().aa(test);


public void aa(Object aaa){
String aa=String.valueOf(aaa);
System.out.println("aaaa:"+aa);
}


String.valueOf的源代码:
public static String valueOf(Object obj) {
        return (obj == null) ? "null" : obj.toString();//能清楚的看到如果obj为null则返回null。否则会调用obj的toString方法。
    }




!!!!!记住:如果类对象想要转化为字符串。会调用类对象的toString方法。这时我们就可以重载toString方法,拼接和组装我们想要的结果。






java和js的toStrong方法会被隐士的调用。在需要的方法的参数时字符串时,会隐士调用对象的toString方法,如果当前对象找不到toString方法就向上查找,查找该对象的父类。。。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值