Java-Java如何用一个变量的值来命名一个新的变量

发布于 2016-11-14 22:36:31 字数 160 浏览 1145 评论 6

比如说这个:

String n_old = "hello";
ArrayList<String> n_old+"01"= new ArrayList<String>();

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

灵芸 2017-10-05 00:26:04

不知道你的业务场景是什么。

不过猜测是否可以通过建立一个Map解决你的问题呢?例如:

String n_old = "hello";
Map<String, Object> container = new HashMap<String, Object>();
container.put(n_old+"01", new ArrayList<String>());

虐人心 2017-09-13 20:39:49

这样做貌似没有任何好处吧.变量名电脑是看不懂的,只是人的一种表意.虚拟机看来,变量名只是局部变量表中,变量槽的一个编号而已.无论谁包含谁,都只是一个数字而已

晚风撩人 2017-09-10 15:13:11

你的语句报错是因为使用了非法的标示符,在java中变量的命名只能使用字母数字和下划线,而且只能以字母和下划线开头,你的变量n_old+"01"显然是错误的,所以建议改成n_old_01。

想挽留 2017-05-01 04:21:20

在java中无法实现,因为变量名一定是一个已知的。

偏爱自由 2017-03-27 09:52:17

变量名是编译器使用的,是编译期的概念,只存在于编译器;而变量的值是运行期的概念,它存在于在编译期和运行期。你这种动态拼接到了运行期才会起作用,但是那个时候变量名都不存在,所以不能实现。而且Java里本身也不支持。

归属感 2017-01-20 05:08:48

我表示强大的C++要实现这个毫无压力,而且很多库都有这种用法,就是根据一个已有的名字生成另一个相关的名字,比如Qt库中就大量使用,简单举例如下:

// 以下是 C++ 代码,不是Java
#define NAME(xxx) name##xxx // ## 表示拼接

int NAME(01) = 0;

cout << NAME(01) << endl; // 这两种表示是一样的
cout << name01 << endl;

可是Java里面没有强大的宏,用 @ITRusher 的方法还是不错的。
还有一个方法,如果名字中的规律是按整数顺序的,还可以用数组,比如

name[0]、name[1]...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文