我在写多线程的时候用到了
Thread t = new Thread(new Searcher());
其中Searcher是我自己写的类,实现了Runnable接口,现在用什么方法可以得到指向new Searcher()的引用?

解决方案 »

  1.   

    你可以在你实现了多线程接口的累里写入
    Searcher searcher;
    这个属性不就好了吗?
      

  2.   

    把new Searcher(); 拿出来写
      

  3.   

    Searcher searcher = new Searcher()); 
    Thread t = new Thread(searcher); 
      

  4.   

    5楼的也可以。
    另一个你也可以在初始化中实现,即在构造方法中设置一个Searcher对象来接收Searcher的引用。
      

  5.   

    学习,学习
    只是奇怪,为什么lz需要拿到指向new Searcher()的引用呢?
      

  6.   

    Searcher searcher = new Searcher()); 
    Thread t = new Thread(searcher); 
    这样不就行了
      

  7.   

    hehe,在java里面都是值传递的,要获取一个变量或对象的引用,你要了解java的引用是怎么回事
    就像你钓鱼一样,是让你把鱼线甩出去了,手上握这鱼竿,而不是连鱼竿和鱼线一起都甩出去,那等鱼上钩了有用吗?
    你提的这个问题和这个不是一样的吗?Thread t = new Thread(new search());就光new了一个对象然后就甩给Thread,那之后该怎么办了,你要先获取这个对象的句柄撒,即所谓的"鱼竿"拉!
    好好看看java编程思想吧!
      

  8.   

    刚刚查了一下Thread的源代码,发现你传给Thread的对象被设置为一个私有属性,且没有get方法可以取出。所以唯一的办法就只有前面多位同学所使用的方法了。谢谢。
      

  9.   

    Java可不都是值传递。只有基本数据类型时。类的对象是引用传递
      

  10.   

    感谢大家的解答,用wanyuzhen的方法解决,mouyong给出了解释,分就给他们俩了。
      

  11.   

    java哪有引用传递
    这就是java和c++的不同之一!
    你看下java编程思想就知道的