Java变量的访问方法???

Eraserpro 2003-03-22 07:20:51
我想访问一系列JAVA变量即如j1,j2,j3,j4对其进行操作
请问哪位知道如何通过变量名访问变量?
意思就是我给出j1,j2这样子的字符串,如何将其转化为当前现有的j1,j2变量?
先行谢过!
...全文
57 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
xhongyang 2003-03-24
  • 打赏
  • 举报
回复
我觉得用个string类型的数组来处理比较好。
Eraserpro 2003-03-24
  • 打赏
  • 举报
回复
重复一次问题:
假设当前情况:String s1="The First";
String s2="The Second";
现在我想通过某种方法访问:
for(int i=1;i<=2;i++)
System.out.println(某个方法("s"+i));
希望输出的是s1,s2两个变量的值即"The First"和"The Second"而不是"s1"和"s2"
也就是说我不输入s1,s2变量,而是通过输入变量名的字符串来访问它的值,这样子的意思!
这样子我可以通过一个循环完成一系列变量名有规律的变量的设置工作.
谢谢, willingsilly() 的方法有点怪,看不太懂.
willingsilly 2003-03-24
  • 打赏
  • 举报
回复
楼主,我的代码能实现你的愿望,再认真看一下。
还不结贴?看着这么多人来抢分,好怕哦...
kreven 2003-03-24
  • 打赏
  • 举报
回复
哦,那打印也不应该加引号啊!再说这种东西最好用数组。
aph 2003-03-24
  • 打赏
  • 举报
回复
廷疯狂的想法,但是毫无必要,我认为你用哈西表来处理比较好一点。否则就只能用反射了。
hellomartin 2003-03-24
  • 打赏
  • 举报
回复
搂主说的是RTTI吧。我不是很动辄方面的东西,自己没用过,所以不能给你实例。你可以看看
thinking in java 第二版的12章,那上面应该由!
CTaoCC 2003-03-24
  • 打赏
  • 举报
回复
关注!up
newman0708 2003-03-23
  • 打赏
  • 举报
回复
版本请先把意思讲清楚,否则别人无法帮你的!
jieshen 2003-03-23
  • 打赏
  • 举报
回复
你的问题不大明白。
willingsilly 2003-03-22
  • 打赏
  • 举报
回复
运行结果:

var publicVar=public var value

Call "getName" method then get a return value: Hello, I'm a instance of A
willingsilly 2003-03-22
  • 打赏
  • 举报
回复
//可以用反射,除非不得以,一般不要用。用法看看下面就知道了

import java.lang.reflect.*;

public class Ref {

public static void main(String[] args) {
A aa=new A("Hello, I'm a instance of A",13);
Field[] fields=aa.getClass().getFields();
try {
for(int i=0;i<fields.length;i++){
System.out.println("var "+fields[i].getName()+"="+fields[i].get(aa));
}
Method mm=aa.getClass().getMethod("getName",null);
System.out.println("Call \"getName\" method then get a return value:\t"+mm.invoke(aa,null).toString());
}
catch (IllegalAccessException ex) {
}catch (IllegalArgumentException ex) {
}catch (InvocationTargetException ex) {
}catch (NoSuchMethodException ex) {
}catch (SecurityException ex) {
}
}
}

class A{
private String name;
private int age;

protected String pvar="protected var";
public String publicVar="public var value";
String c="default var";

public A(String aName, int aAge){
this.name=aName;
this.age=aAge;
}

public String getName(){
return name;
}

public int getAge(){
return age;
}

}
outlier 2003-03-22
  • 打赏
  • 举报
回复
不是太明白你的意思,我猜大概是用反射之类的东西吧。

62,614

社区成员

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

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