首页 新闻 会员 周边

java打印内存地址该怎么解决,代码没问题

1
悬赏园豆:5 [已解决问题] 解决于 2016-04-18 20:45

System.out.println("========所有的商品清单==========");
  System.out.println("商品编号\t"+"商品名称\t"+"商品类型\t"+"商品单价\t"+"库存数量\t");
  ProductsDao pr=new ProductsDao();
  List<Productss> list=pr.getAllTypes();
  for(Productss p : list){
   System.out.println(p);
  }

问题补充:

代码块能进行操作

她她她她心他的主页 她她她她心他 | 初学一级 | 园豆:192
提问于:2016-03-17 16:21
< >
分享
最佳答案
0

 p.tostring()

吴瑞祥 | 高人七级 |园豆:29449 | 2016-03-17 16:39

无论重写tostring方法还是点击tostring 也没用

她她她她心他 | 园豆:192 (初学一级) | 2016-03-17 17:00
其他回答(7)
0

Productss   里面应该有字段的geter 和 setter 方法吧   获取某个字段就调用某个字段的get方法

snowjake123 | 园豆:469 (菜鸟二级) | 2016-03-17 16:58

没用啊。

支持(0) 反对(0) 她她她她心他 | 园豆:192 (初学一级) | 2016-03-17 17:00
0

java里面拿不到堆上对象的实际内存地址的吧。如果有的话也是在unsafe中,而且拿出来也没任何意义,任何一次gc都会导致你堆上对象地址发生变化。

看你的代码应该是拿对象中的各种字段的值显式出来吧,这种你override toString方法,在toString方法实现中输出各个信息的值。要么在最后println的时候从当前对象的实例中拿取字段做拼接输出。

Daniel Cai | 园豆:10424 (专家六级) | 2016-03-17 17:20
0

Productss是一个对象吧。你不能直接打印p的,要去调用对象的get方法。比如:p.getName(),这样。

cooljser | 园豆:202 (菜鸟二级) | 2016-03-17 18:04
0

打印出的那个数字不是内存地址,而是对象的 hash code。

Override toString()方法肯定能解决问题。注意方法名中的那个 s 是 大写的。如果还是不能解决问题,把相关的代码贴上来。

小米干饭 | 园豆:218 (菜鸟二级) | 2016-03-17 22:23
0

Products类里面重写toString方法,shift+alt+s  选择 generate toString()

关外野店 | 园豆:188 (初学一级) | 2016-03-18 11:24
0

重写tostring方法,传了参数

她她她她心他 | 园豆:192 (初学一级) | 2016-03-19 10:59

toString() 方法是不带参数的。

支持(0) 反对(0) 小米干饭 | 园豆:218 (菜鸟二级) | 2016-03-22 03:26
0

Productss是个类,他有属性,你打印的是个对象

收获园豆:5
加洲旅馆2012 | 园豆:503 (小虾三级) | 2016-04-08 16:03
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册