Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有一种方法可以查看在Java中发送到方法中的参数值?_Java_Variables_Error Handling_Methods_Printing - Fatal编程技术网

有没有一种方法可以查看在Java中发送到方法中的参数值?

有没有一种方法可以查看在Java中发送到方法中的参数值?,java,variables,error-handling,methods,printing,Java,Variables,Error Handling,Methods,Printing,我目前正在为我的Java项目开发调试/错误处理工具。这是一个很长的过程,但是有没有一种方法可以打印出发送到方法中的参数的值呢 JVM在调用该方法时必须存储它们。不管怎样,我能抓住那些价值观吗 我的目标是调用我自己的printArguments()方法,不管我使用什么方法,它都应该以某种方式打印出参数 有人知道我怎么解决这个问题吗?或者我可以访问其他类似的信息?我希望在某个时间获得尽可能多的信息,例如变量 如有任何意见,将不胜感激!:) 您需要再详细说明一下。您是否正在构建自己的从Java源代码到

我目前正在为我的Java项目开发调试/错误处理工具。这是一个很长的过程,但是有没有一种方法可以打印出发送到方法中的参数的值呢

JVM在调用该方法时必须存储它们。不管怎样,我能抓住那些价值观吗

我的目标是调用我自己的printArguments()方法,不管我使用什么方法,它都应该以某种方式打印出参数

有人知道我怎么解决这个问题吗?或者我可以访问其他类似的信息?我希望在某个时间获得尽可能多的信息,例如变量


如有任何意见,将不胜感激!:)

您需要再详细说明一下。您是否正在构建自己的从Java源代码到字节码的编译器?您是否正在构建自己的字节码解释器?您想挂接到现有的字节码解释器吗?答案完全取决于你所关注的阶段


如果您可以访问Java源代码,那么面向方面的编程可能适合您。您可以使用它将printArguments调用自动编织到每个普通的方法调用中。

您需要详细说明一下。您是否正在构建自己的从Java源代码到字节码的编译器?您是否正在构建自己的字节码解释器?您想挂接到现有的字节码解释器吗?答案完全取决于你所关注的阶段


如果您可以访问Java源代码,那么面向方面的编程可能适合您。您可以使用它将printArguments调用自动编织到每个普通方法调用中。

您应该能够使用AOP做一些事情


您应该能够使用AOP做一些事情


这听起来像是AOP的工作。如果您使用的是Spring,那么有一些简单的解决方案


如果您想手动滚动解决方案,您可以使用内省来获取所需的所有信息。我建议使用代理()包装要记录的类,并在代理中实现记录。

这听起来像是AOP的工作。如果您使用的是Spring,那么有一些简单的解决方案

如果您想手动滚动解决方案,您可以使用内省来获取所需的所有信息。我建议使用代理()包装要记录的类,并在代理中实现记录

我目前正在为我的Java项目开发调试/错误处理工具

你在用电话吗?如果是这样的话,您可能可以获取,获取,并从当前。如果您不熟悉,请参见此

如果您想避免在调试模式下运行,那么(如其他人所述)是一个很好的解决方案。您可以使用和/或推出自己的解决方案,但这是一种更复杂的方法

我目前正在为我的Java项目开发调试/错误处理工具

你在用电话吗?如果是这样的话,您可能可以获取,获取,并从当前。如果您不熟悉,请参见此


如果您想避免在调试模式下运行,那么(如其他人所述)是一个很好的解决方案。您可以使用and/or滚动您自己的解决方案,但这是一种更复杂的方法。

也许VisualVM就是您要寻找的

如果您使用的是sun的最新版本,那么您已经拥有visualvm


查看此链接了解更多概述:

也许VisualVM就是您要寻找的

如果您使用的是sun的最新版本,那么您已经拥有visualvm


查看此链接了解更多概述:

我可能有点模糊


这是一个标准的J2SE项目。使用标准编译器och运行时,没有什么特别之处。我希望尽可能多地使用J2SE库,而不是将新的库包含到项目中,或者使用像Eclipse这样的外部工具,因为它将远离非开发机器。

我可能有点模糊


这是一个标准的J2SE项目。使用标准编译器och运行时,没有什么特别之处。我希望尽可能多地使用J2SE库,而不是将新的库包含到项目中,或者使用像Eclipse这样的外部工具,因为它将远离非开发机器。

我现在读了一大堆,但我仍然不确定使用什么

VisualVM看起来像一个外部工具,我对此不感兴趣。为了使用代理,我必须用它包装项目中的所有类,我对此不感兴趣

这可以归结为JPDA和AOP,两者似乎都很复杂,然后他们应该:)我不确定这两者中哪一个更简单,我可以在同一个运行时使用,没有在调试模式下启动应用程序或创建一个新的OAP语言编写的东西

我希望有一种简单的方法来转储方法参数,而不知道方法、参数数量或类型

理论上,由于反射,我可以得到方法名和参数类型。但不是他们的价值观


任何回复都会有帮助。

我现在读了一大堆,但我仍然不知道该用什么

VisualVM看起来像一个外部工具,我对此不感兴趣。为了使用代理,我必须用它包装项目中的所有类,我对此不感兴趣

这可以归结为JPDA和AOP,两者似乎都很复杂,然后他们应该:)我不确定这两者中哪一个更简单,我可以在同一个运行时使用,没有在调试模式下启动应用程序或创建一个新的OAP语言编写的东西

我希望有一种简单的方法来转储方法参数,而不知道方法、参数数量或类型

理论上,由于反射,我可以得到方法名和参数类型。但不是他们的价值观


任何响应都会很有帮助。

如果您只想依赖JDK库(1.4+),我唯一能想到的就是向所有您的数据库添加日志记录
public void foo(String bar) {
    log.debug("entering foo(" + bar + ")");
    //...
}
void PrintValues(Object... params){
   for(object o : params){
      System.out.println(o.toString());
   }
}
void SomeMethod(String p1, int p2, StringBuilder p3){
   PrintValues(p1, p2, p3);
}