能这么作吗? static 块本身就存在的意义就在于只需要执行一次。 现在偏偏要把篮球当作足球踢,还要求它象飞火流星一样划出弧线。

解决方案 »

  1.   

    static块好像这样用不是地方!
      

  2.   

    不能这么实现!因为static在内存中只存在一份!
      

  3.   

    静态块或者景泰成员的初始化都是在类被ClassLoader加载之后第一次初始化的时候运行的。
    如果你想要这句话每次都能运行,就不能这么处理了!
      

  4.   

    我的目的非常明确,即是:在每次调用一个CLASS时,都将该CLASS的日志日志打印出来
    所以,有两点是肯定的:
    1 我不能将日志写在某个静态方法中.
      原因是,我要求的是只要调用这个类,就打印其日志,并非是调用其某个特定方法时打印日志.
     
    2 我不能将日志写在构造方法中
      比如有些类,并非创建其对象后才使用,比如: Math.pow(a,b);
    ********* 
    to jFresH_MaN(TM) 
    请问,那么我应该怎么做?我怎么才能每次调用类时都让其输出日志?
      

  5.   

    在自己每个要调的地方都用log4j写吧,java是实现不了你的这种用法的,
    log4j不是定义了不同的debug级别吗,不就是多cp一下
      

  6.   

    突然想起来有一种方法是可以实现这种的,
    不过没什么意义:
    在每次建立新的对象时这样用:
    URL u = new URL("file:/d:/my/lib/");  //d:/my/lib/你的class所在的位置
    URLClassLoader ucl = new URLClassLoader(new URL[]{ u } );
    Class c = ucl.loadClass("YourClassName");
    YourClass yc = c.newInstance();在其它要用的地方也这样写:
    URL u = new URL("file:/d:/my/lib/");  //d:/my/lib/你的class所在的位置
    URLClassLoader ucl = new URLClassLoader(new URL[]{ u } );
    Class c = ucl.loadClass("YourClassName");
    YourClass yc = c.newInstance();没什么好处的