static变量是全局的变量,不管一个类有多少个实例,访问访变量都是同一个。如果用不同类加载器来加载 类,产生的实例,是不是可以让static变量不共享呢? 如果不是,有什么其它的方法吗?散分~~~~~

解决方案 »

  1.   

    接分·static是类变量不是对象变量所以和实例无关!!!!!所有实例都可以访问这个类变量~
    不知道说清楚没·
      

  2.   

    用不同类加载器加载的类相互之间不能交互吧,应该是达不到你的需求。不让共享可以取消static,或者定义为private
      

  3.   

    回楼上:static属性这个不能改, 我提的问题已经是,如何让static变量不共享,其中我提了一个方案,就是用不同的类加载器去加载那个类,但不知道行不行,所以才请教大家.
      

  4.   

    如果该为private私有的话 只能在当前类中使用我还是没明白楼主想干嘛 具体举例说明
      

  5.   

    LZ这样行不?定义了一个静态变量后,给一个静态方法获得该值,但这个只是值相同的另一个实例。class temp {
    private static int i = 10;
    public static int getI() {
    int a = i;
    return a;
    }
    }
      

  6.   

    哎,相当郁闷 。 因为第三次提供了一个jar包,是单例的, 它里面有一个静态变量,不管你在哪里new这个类,那个静态变量都是共享的,所以我想解决掉这个问题,就是共享它,明白了吧。
      

  7.   


    别人提供的jar包,怎么去?
      

  8.   

    不知道楼主说的“不共享”是什么意思?如果是不想让别的类访问,可以设置成 private
      

  9.   

    两个类中写两个main方法,分别运行,在main方法里引用全局静态变量,这样就有静态变量就有不同的两个值了
      

  10.   

    我再简单描述一下:有一个第三方jar包,提供了某个类AA有个static变量a,所以不管在哪个类需要调用AA,如果需要操作变量a的话,这个a的值都是共享的。因此如何解决这个问题呢?又不能去改别人的源代码,真是郁闷阿