我在用java做个application,现遇到一个问题。
登陆后,想在以后都能使用该用户的基本信息,比如userid,department等,可java中没有全局变量之说,我应该用什么办法实现呢?

解决方案 »

  1.   

    定义一个用户类,
    实例化成static 对象,但这样要注意,整个程序中要注意不要随意改变该对象的内容.
      

  2.   

    static 静态成员变量可以解决你的问题
      

  3.   

    public class MyBean{
       public static final String dd="Global";
    }
      

  4.   

    用static 可以达到全局变量 效果
      

  5.   

    public static String AAA = "";
      

  6.   

    专门定义一个类,内部使用static定义变量,该变量就可以全局访问了。
      

  7.   

    写一个用户的类,类中只包含需要的属性,使用static声明
      

  8.   

    static 静态方法或是构造方法中声明都可以啊!
      

  9.   

    //用类属性(static修饰),不过看你的样子最好不要这样,不然你的这个东西只能是你一个人用的,用传参吧,要充分利用对象思想
      

  10.   

    其实楼上的都说得很清楚了,这里就举个例子吧:class Person()
    {
    public static userid;
    public sattic department;
    .....
    }请指正。
      

  11.   

    最好用传参数,将某个类(类中包含你想要的变量)作为参数下传,即可调用类的所有public 变量,你说的那两个变量也可以定义为public类型,赋值后,直接通过参数类调用参数即可。
    当然也有很多其他方法。
      

  12.   

    大家都说了这么多了,我想应该是使用static
      

  13.   

    1、传参最好
    2、static,但如果创建两个或两个以上对象就不太好了
      

  14.   

    singlton 设计模式     public class CGlobalVar{
               private String userid = null;
               private static CGlobalVar globalVar;
               private CGlobalVar (){
                    
               }
               
               public static CGlobalVar getInstance(){
                    if(null == globalVar){
                           globalVar = new CGlobalVar();
                    }
                    return globalVar;
               }
               
               public void setUserid(String pUserid) {
                   userid = pUserid;
               }           public String getUserid() {
                  return userid;
               }
         }使用方法:
          CGlobalVar globalVar = CGlobalVar.getInstance();
          globalVar.setUserid("flashdragon");
          String userid = globalVar.getUserid();
      

  15.   

    public  static  final  int a=1;就是java常量,它是在编译时把所有a替换成1,不过它比C++中宏定义好的地方是,它是编译过程中替换而不是编译前的字符串替换。或者说“先计算,再替换”
    例如
    public  static  final  int a=1+3;
    c=a*5替换成4*5
    而不是1+3*5