为了账号安全,请及时绑定邮箱和手机立即绑定

System.out.println("name:"+obj);obj不是对象吗?直接打印不应该是哈希码吗?

List<Object> list=query.list();
for(Object obj:list){
    System.out.println("name:"+obj);
}

在没有重写Ojbect的toString()的情况下,为什么输出结果为seller.name,而不是obj的哈希码?

正在回答

3 回答

没哟重写的情况下;输出的是表示对象描述的哈希码;你这里肯定重写了toString()方法

0 回复 有任何疑惑可以回复我~

因为他是字符串

0 回复 有任何疑惑可以回复我~

就因为obj是一个对象,所以它打印出来的是seller.name,如果你这个obj是一个数组或集合,打印出来的才是哈希码。相当于你 int a = 0; 然后 System.out.println(a); 一样 

0 回复 有任何疑惑可以回复我~
#1

昵称是JaVa 提问者

int a是基本变量,自然可以直接输出,但obj有可能会是引用型变量。就像Student b=new Student(); 你输出b的话,恐怕就是哈希码了吧。
2017-03-27 回复 有任何疑惑可以回复我~
#2

懒散的0鱼 回复 昵称是JaVa 提问者

System.out.println("name:"+obj); 这里的obj默认调用了toString()方法的-_-||
2017-03-28 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

System.out.println("name:"+obj);obj不是对象吗?直接打印不应该是哈希码吗?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信