debug中调试程序时,输出的数字是十六进制??不好看,怎么改成十进制输出。。方便查看调试情况。。

解决方案 »

  1.   


    int i = Integer.parseInt("AA",16);
    System.out.println(i);
      

  2.   

    我的java程序是这样的。
    class ProducerConsumer{
    public static void main(String[] args){
    SyncStack ss=new SyncStack();
    Producer p=new Producer(ss);
    Consumer c=new Consumer(ss);
    new Thread(p).start();
    new Thread(c).start();


    }
    }
    class WoTou{
    int id;
    WoTou(int id){
    this.id=id;
    }

    public String tostring(){
    return "WoTou:" + id;
    }
    }
    class SyncStack{
    int index=0;
    WoTou[] arrWT=new WoTou[6];
    public synchronized void push(WoTou wt){
    if(index==arrWT.length){
    try{
    this.wait();
    }catch(InterruptedException e){
    e.printStackTrace();
    }

    }
    this.notify();


    arrWT[index]=wt;
    index ++;

    }
    public synchronized WoTou pop(){
    if(index==0){
    try{
    Thread.sleep(1000);
    }catch(InterruptedException e){
    e.printStackTrace();
    }
    }
    this.notify();
    index--;
    return arrWT[index];
    }

    }
    class Producer implements Runnable{
    SyncStack ss=null;
    Producer(SyncStack ss){
    this.ss=ss;

    }

    public void  run(){
    for(int i=0;i<20;i++){
    WoTou wt=new WoTou(i);
    ss.push(wt);
    System.out.println("生产了:" + wt);
    try{
    Thread.sleep(1000);
    }catch(InterruptedException e){
    e.printStackTrace();
    }
    }
    }
    }
    class Consumer implements Runnable{
    SyncStack ss=null;
    Consumer(SyncStack ss){

    this.ss=ss;

    }

    public void run(){
    for(int i=0;i<20;i++){
    WoTou wt=ss.pop(); 
    System.out.println("消费了:" + wt);
    try{
    Thread.sleep(1000);
    }catch(InterruptedException e){
    e.printStackTrace();
    }
    }
    }
    }
    在debug中调试
    输出的是:生产了:WoTou@1a758cb
    消费了:WoTou@1a758cb
    生产了:WoTou@1b67f74
    消费了:WoTou@1b67f74
    .
    .
    .
    .不应该输出这个16进制的啊,这个不是十进制的,怎么回事?
      

  3.   

    toString未写正确!嗯,谢谢!!