java中如何用参数作为变量名来定义变量

比如:publicfun(Strings){...}在该构造器中我要用参数s作为变量名来定义一个int的参数,如何做到?大家可能误会了阿,比如我调用fun(A)以后,构造... 比如:
public fun(String s){
...
}
在该构造器中我要用参数s作为变量名 来定义一个int的参数,如何做到?
大家可能误会了阿,比如我调用fun(A)以后,构造器就帮我生成了一个名字为A的变量,调用fun(B)以后就生成了一个名字为B的变量,而且此变量可以被其他方法调用,不能为局部变量
先谢谢 123楼不过不是我想要的答案
展开
 我来答
我今天上课了
2010-12-01 · TA获得超过1410个赞
知道小有建树答主
回答量:844
采纳率:0%
帮助的人:677万
展开全部
根据你的要求,生成的变量不是局部变量其他方法也可以使用,那这个变量只有是类的属性了,
1 如果你的A 或着 B 是事先知道的,那就是一个简单的赋值,这肯定不是你想要的
2 实现这个变量名是不知道的,也就是说这个类的属性开始是没有的,是你调用该构造方法的时候动态生成的,这应该是你的意思吧
1)。根据你要动态生成的需求,所以这个不可能是你现在就写上去的,只有利用 反射 在jvm加载类的时候去动态生成了,但是我查了一下 Class 的API,里面根本就没有对类添加属性的操作,API里只提供了类的属性,构造器,方法的读,也就是一系列的get方法,所以我觉得这个实现不了。

PS:我觉得你再读读你的需求,看看可不可以用第一种方式解决,其实这个有点累死工厂模式的思想,如果这个实在不行还是想想其他的方法
百度网友f384c78
推荐于2017-09-16 · TA获得超过2070个赞
知道小有建树答主
回答量:538
采纳率:0%
帮助的人:718万
展开全部
Java不是动态语言所以没有办法做到运行时动态添加属性。不过可以变通实现
public class Test {
private Map<String, Object> fields = new HashMap<String, Object>();
public void setData(String s, Object v) {
fields.put(s, v);
}
public Object getData(String s) {
return fields.get(s);
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
杨楼村
推荐于2017-10-12 · 经典互联网教程,高考,软考,程序
杨楼村
采纳数:140 获赞数:412

向TA提问 私信TA
展开全部
Java不是动态语言,不能运行时动态添加属性。不过可以通过
添加方法来实现例如下面
public class Test {
private Map<String, Object> fields = new HashMap<String, Object>();
public void setData(String s, Object v) {
fields.put(s, v);
}
public Object getData(String s) {
return fields.get(s);
}
}
其实就是添加了一个属性,应该就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
快乐_熊大
2010-12-01 · 超过10用户采纳过TA的回答
知道答主
回答量:40
采纳率:0%
帮助的人:22.9万
展开全部
在方法中的参数变成全局变量,你需要使用集合容器hashmap等;以上是可运行的
把生成的变量都保存在hashmap中下次可以调用,
import java.util.HashMap;

public class aa {
static HashMap hash;
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
hash = new HashMap();
a("wu");
b("zhong");
System.out.println(hash.get("a"));
System.out.println(hash.get("b"));

}
static void a (String a){
hash.put("a", a);

}
static void b(String b){
hash.put("b", b);
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xhjjh23
2010-12-02 · TA获得超过744个赞
知道答主
回答量:356
采纳率:0%
帮助的人:255万
展开全部
不是重载 和变量名没有关系 是和变量的个数或者是变量的类型有关系 你说的那个是覆盖不是重载
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式