动态Java变量命名

时间:2011-05-04 15:12:05

标签: java variables dynamic

这个问题更多的是为了进一步发展我的知识......

Java是否有类似于PHP生成变量名的能力?我有一个SCJA证书,我正在为SCJP学习,从未见过这个,但很好奇。

PHP示例

$application->{$request->getParameter("methodCall")}($request->getParameter('value'));

Java有类似的东西吗?我一直在这里阅读,一般的答案是使用我不感兴趣的HashMap,因为这不是解决实际问题。我对这个可能的解决方案更感兴趣吗?如果不是这样,只是想扩大我的知识!

谢谢, 贾里德

3 个答案:

答案 0 :(得分:3)

不,变量(字段和局部变量)在Java编译时是静态“创建的”。

当然,内存只是在运行时占用,但是在编译时决定了一个对象有多少个字段。

因此,您无法在Java中“动态添加字段”。

是的:Map 是解决问题的方法。 “添加字段”通常不是问题,而是尝试解决方案,它适用于某些语言(通常是动态的)并且不适合其他语言。

答案 1 :(得分:0)

我认为你的意思是一堂课。局部变量只能在方法中使用。

要在类或变量中生成字段,您需要生成Java代码并在运行时编译它或字节代码。它可以完成,但比使用简单的Map要复杂100倍。 (我之前动态完成过,除非你真的必须这样做,否则我不会推荐它)

如果您想进行代码生成,我建议使用Objectweb's ASM

答案 2 :(得分:0)

这不能做... Java Reflection只允许您查看类的结构但不附加到它。