小编Arc*_*mag的帖子

如何在Java方法/函数中列出所有局部变量?

我的主要问题:我知道你可以通过反射来输出类字段,即使你不知道变量名,类型,甚至有多少.但是,有没有办法列出当前函数或当前范围内的所有变量,假设我不知道变量名是什么?

换一种说法:

int x = 5;
int y = 42;
// some more code
//Now I want to println x and y, but assuming I cannot use "x" or "y".
Run Code Online (Sandbox Code Playgroud)

我也很高兴回答这个问题:假设我允许存储所有变量的名称,这有帮助吗?例如:

Set<String> varNames = new HashSet<String>();
int x = 5;
varNames.add("x");
int y = 42;
varNames.add("y");
// some more code
//Now with varNames, can I output x and y without using "x" or "y"?
Run Code Online (Sandbox Code Playgroud)

我为什么这么问?我正在使用ANTLR将XYZ语言翻译成java,我想提供一种简单的方法来在任何时间点输出程序的整个状态.

第三种可能的解决方案我很满意:如果在Java中这是不可能的,有什么方法可以为访问调用函数并检查堆栈的函数编写字节码?这也可以解决问题.

令人惊奇的是,如果Java具有相当于Python eval()或php的功能get_defined_vars().

如果它有所作为,我使用Java 6,但Java 5,6或7的任何东西都应该是好的.

谢谢!

java compiler-construction reflection profiling antlr

7
推荐指数
1
解决办法
3083
查看次数

将验证码集成到Symfony2 FOSUserBundle注册的最简单方法是什么?

我正在使用Symfony2和FOSUserBundle来管理注册和登录.我想添加一个验证码系统.是否有预先存在的捆绑或教程?

当然,我可以尝试使用Google re-captcha自行推出.在那种情况下,谷歌reCaptcha是一个不错的选择,还是应该使用其他一些API?

captcha symfony fosuserbundle

5
推荐指数
1
解决办法
1万
查看次数

PHP匿名函数作为默认参数?

有没有办法在PHP中这样做?

//in a class
public static function myFunc($x = function($arg) { return 42+$arg; }) {
   return $x(8); //return 50 if default func is passed in
}
Run Code Online (Sandbox Code Playgroud)

php arguments anonymous-function

2
推荐指数
1
解决办法
838
查看次数