java如何实现全局变量的功能

bigvincent 2007-07-07 10:58:23
我在用java做个application,现遇到一个问题。
登陆后,想在以后都能使用该用户的基本信息,比如userid,department等,可java中没有全局变量之说,我应该用什么办法实现呢?
...全文
3168 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
plheng 2008-05-13
  • 打赏
  • 举报
回复
public static final String a="123"这是全局变量.

一般在WEB中建议不要使用全局变量.建议写入XML.你的初始设置中.
纪俊 2008-05-13
  • 打赏
  • 举报
回复
如果是web,可以用jsp读取cookie或者session
ghostme1986 2008-05-13
  • 打赏
  • 举报
回复
在一个public类里static一个变量,就可以了,用时候直接“类.变量”就行了,当然,要先import包含这个类的包
bawgiitx 2008-05-12
  • 打赏
  • 举报
回复
class User{

//{数据定义
/**用户名
*/
String name;

/**密码
*/
String pass;

///////还有别的用户数据
//}


User(){
name = "";
pass = "";
}
User( String na, String pa){
setValue( na, pa);
}

public void setValue( String na, String pa) {
setName( na);
setPass( pa);
}

public synchronized void setPass( String pa){
pass = new String( pa);
}

public synchronized void setName( String na){
name = new String( na);
}

public String getName(){
return name;
}

public String getPass(){
return pass;
}

public User cone(){
return new User( name, pass);
}
}


class Team{

//{数据定义
/**定义可以存放最大的用户数
*/
private final static int MAX_COUNT = 10;

/**存放当前的用户数
*/
private int UserCout;

/**数组存放用户名
*/
private User Users[];

/**存放自己的全局指针
*/
static private Team IsThis;


//////////还有要用到的数据
//}


private Team(){
Users = new User[ MAX_COUNT];
}

/**得到全局的用户组对像
*/
public synchronized static Team getTeam(){
if( IsThis == null){
IsThis = new Team();
}
return IsThis;
}

/**插入用户讯息,插入后排序
*/
public synchronized boolean addUser( User user){
if( user == null || user.getName() == null || UserCout >= MAX_COUNT){
return false;
}
Users[ UserCout++] = user.cone();
if( UserCout > 1){
User buff;
for( int loop = UserCout - 1; loop > 0; loop--){
if( Users[ loop].getName().compareTo( Users[ loop - 1].getName()) >= 0){
buff = Users[ loop];
Users[ loop] = Users[ loop - 1];
Users[ loop - 1] = buff;
}else{
break;
}
}
buff = null;
}
return true;
}
////////////其它的方法自己写
}
//只要还有Team的这对像的引用其内存空间就不会被释放
//如果想要自己手动的方法要释放可以用添加线程的方法实现
//添加的接口 class Team implements Runnable{
//要添加的数据
/**添加的线程
*/
Thread thread;

/**进各运行状态, 当为 false 时进程结束, 静态对像 Team IsThis 内存空间释放
*/
boolean IsRunning;

//在 Team() 中加入初始化代码
thread = new Thread( this);
IsRunning = true;
thread.start();

//要添加的方法

/**结束线程
*/
public synchronized void exit(){
if( thread.isAlive()){
IsRunning = false;
}
}

public void run() {
while( IsRunning){
try {
Thread.sleep(100);
} catch (InterruptedException ex) {
}
}
IsThis = null;
}
bigvincent 2007-07-09
  • 打赏
  • 举报
回复
多谢,试一下,实践出真知!
tdy1234 2007-07-09
  • 打赏
  • 举报
回复
做一个PUBLIC类,把里面的成员变量定义为STATIC
bigvincent 2007-07-09
  • 打赏
  • 举报
回复
有一点我不太明白,设计好的类,在登录的时候创建,什么时候释放呢?
david2083 2007-07-09
  • 打赏
  • 举报
回复
public class ss
{
  public static int userid = 0;
  public static String department = null;
}

ss.userid = 123;

bigvincent 2007-07-09
  • 打赏
  • 举报
回复
做一个用户类,可以实现吗
yonglr899 2007-07-09
  • 打赏
  • 举报
回复
可以用session 或 cookie !
KingNE 2007-07-09
  • 打赏
  • 举报
回复
static final
icebluenet 2007-07-09
  • 打赏
  • 举报
回复
以上的问题,有个东西叫session,有个bean的范围叫session和application
bigvincent 2007-07-09
  • 打赏
  • 举报
回复
举个例子,我做一个小程式,仓库管理,用户A本次登陆,A要做一些单据,这些单据里面就要记录做单据的人,如何让该用户的ID在系统运行的过程中都可以被引用?
joejoe1991 2007-07-07
  • 打赏
  • 举报
回复
传参
bigvincent 2007-07-07
  • 打赏
  • 举报
回复
哦,没有其他办法了吗
dracularking 2007-07-07
  • 打赏
  • 举报
回复
lz不妨可以通过读取xml文件来实现
liujun999999 2007-07-07
  • 打赏
  • 举报
回复
共有静态变量不就可以吗
约翰羊 2007-07-07
  • 打赏
  • 举报
回复
用static
弄一个public类,把里边的变量弄成static的,这样就可以当全局的用.

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧