如何知道一个静态对象时候存在?

maplewind 2002-12-12 11:29:26
在另一个java文件里的static对象。
如果不存在,就不对它产生调用。已经存在了,就操作他。
该怎么判断它是否存在?
...全文
124 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ydtj829 2002-12-16
  • 打赏
  • 举报
回复
如果非要判断,为什么不用ASSERT或者if之类的语句呢?
zhwb36 2002-12-16
  • 打赏
  • 举报
回复
非要判断,那就象nc201给出的例子那样,使用异常的方法,如果不存在,就不对它产生调用,已经存在了,就操作他。
DavidBone 2002-12-14
  • 打赏
  • 举报
回复
当此类第一次被引用时,static就被initialize了
maplewind 2002-12-12
  • 打赏
  • 举报
回复
那就是说没有办法判断时候存在,也没有办法不使用他???
jery_lee 2002-12-12
  • 打赏
  • 举报
回复
YES!
ilka 2002-12-12
  • 打赏
  • 举报
回复
不用判断,当你是用它时,它必然是已经存在的,static初始化动作发生在类装入内存时。
fish1980 2002-12-12
  • 打赏
  • 举报
回复
static变量只初始化一次,发生在类装入时。
Philzzf 2002-12-12
  • 打赏
  • 举报
回复
修正上面的!
Class t;
try {
t = Class.forName("java.lang.Math");
Method[] methods = t.getDeclaredMethods();
for (int i = 0; i < methods.length; i++) {
Method methVal = methods[i];
Class returnVal = methVal.getReturnType();
int mods = methVal.getModifiers();
String modVal = Modifier.toString(mods);
Class[] paramVal = methVal.getParameterTypes();
StringBuffer params = new StringBuffer();
for (int j = 0; j < paramVal.length; j++) {
if (j > 0)
params.append(", ");
params.append(paramVal[j].getName());
}
System.out.println("Method: " + methVal.getName() + "()");
System.out.println("Modifiers: " + modVal);
System.out.println("Return Type: " + returnVal.getName());
System.out.println("Parameters: " + params + "\n");
}
} catch (ClassNotFoundException c) {
System.out.println(c.toString());
}
Philzzf 2002-12-12
  • 打赏
  • 举报
回复
给你一个例子。
Class t;
try {
inspect = Class.forName("java.lang.Math");
Method[] methods = t.getDeclaredMethods();
for (int i = 0; i < methods.length; i++) {
Method methVal = methods[i];
Class returnVal = methVal.getReturnType();
int mods = methVal.getModifiers();
String modVal = Modifier.toString(mods);
Class[] paramVal = methVal.getParameterTypes();
StringBuffer params = new StringBuffer();
for (int j = 0; j < paramVal.length; j++) {
if (j > 0)
params.append(", ");
params.append(paramVal[j].getName());
}
System.out.println("Method: " + methVal.getName() + "()");
System.out.println("Modifiers: " + modVal);
System.out.println("Return Type: " + returnVal.getName());
System.out.println("Parameters: " + params + "\n");
}
} catch (ClassNotFoundException c) {
System.out.println(c.toString());
}

51,411

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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