相关疑难解决方法(0)

动态获取当前行号

Java中有没有办法通过反射或一些很棒的API动态获取当前行号?就像异常发生时一样,行号在堆栈跟踪中打印出来,如下所示:

at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:348)
Run Code Online (Sandbox Code Playgroud)

现在有没有办法在下面的代码中打印或记录?

log.error("Error in: " + this.getClass.getName() + "at line #"+ this.getClass.getActualLine());
Run Code Online (Sandbox Code Playgroud)

你可能会问,我为什么不简单地打印行号?好吧,因为代码可能会在特定的log.error()方法调用之前被删除或添加.

java reflection

30
推荐指数
4
解决办法
2万
查看次数

如何在LogCat中插入一个日志,当我点击它时会跳转到代码中的行?

我想在LogCat中插入一个日志,当我点击它时会跳转到它的行,就像系统生成的一些错误日志一样.

可能吗?

eclipse android logcat

10
推荐指数
1
解决办法
2884
查看次数

我可以打印出变量的名称吗?

我创造了一个号码.常量变量超过1000,那些常量是唯一的整数.

public static final FOO  335343
public static final BAR  234234
public static final BEZ  122424
....
....
....
Run Code Online (Sandbox Code Playgroud)

有没有办法打印出FOO,BAR和BEZ,这是Java中名字的变量?我不熟悉java反射.我不知道这是否有帮助.

if ( FOO == 335343)
   ---> output "FOO"
if ( BAR == 234234 )
   ---> ouptut "BAR"
....
Run Code Online (Sandbox Code Playgroud)

实际上问这个问题是我想写日志到文件

System.out.println("This time the output is " + FOO);
Run Code Online (Sandbox Code Playgroud)

而实际的输出是

This time the output is 335323
Run Code Online (Sandbox Code Playgroud)

我想知道哪个变量来自335323.除了将这些变量及其关联常量放入hashMap之外还有其他方法吗?

谢谢

java reflection

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

android log util中的行号

有没有办法用android Log打印文件行号?

在此输入图像描述

eclipse android ddms

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

如何在 Haskell 中打印行号和堆栈跟踪?

我 Java 我将此附加到我的打印语句中,并且它们有一个堆栈跟踪...

我们如何在java中将行号打印到日志中

public static int getLineNumber() {
    // The second row of the stack trace had the caller file name, etc.
    return Thread.currentThread().getStackTrace()[2];
}
Run Code Online (Sandbox Code Playgroud)

我怎么做这是 Haskell?

debugging haskell

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

有没有办法在 log4j 模式中指定当前行号

我有一个以以下格式输出到控制台和日志文件的模式:

[INFO]  17:31:12 - Checking Bla Bla Bla 
[INFO]  17:31:12 - ************* Starting *********************
[INFO]  17:31:12 - Testing Begins
Run Code Online (Sandbox Code Playgroud)

有什么方法可以附加行数,使其看起来像:

[001][INFO] 17:31:12 - Checking Bla Bla Bla 
[002][INFO] 17:31:12 - ************* Starting *********************
[003][INFO] 17:31:12 - Testing Begins
Run Code Online (Sandbox Code Playgroud)

java logging log4j

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

如何使Java编译器在已编译的代码中生成行号

我有一个名为A.class的hello世界程序。它是使用command编译的javac A.java。它所做的只是打印“ hello world”

接下来,我使用进行了编译javac -g A.java。我期望看到行号,但看不到。知道发生了什么吗?

我确实看到在javac编译的.class文件和javac -g编译后的某些特殊字符之间的细微差别。但是我看不到任何行号。

我对此的好奇心是因为我想找到线数可能会对性能产生什么样的影响。其次,我想知道log4j等如何维护记录的行号。谢谢。

java javac

3
推荐指数
1
解决办法
2067
查看次数

获取异常对象的错误号

我开发了一个程序,它有一个入口点.Try catch块围绕着它.

try {
            Runner runner = new Runner();
            // Adhoc code
            UIManager.setLookAndFeel(new NimbusLookAndFeel());
            runner.setupVariables();
            runner.setLookAndFeel();
            runner.startSessionFactory();
            runner.setupApplicationVariables();
            runner.setupDirectories();
            // This will be used to test out frames in development mode
            if (Runner.isProduction == true) {
                execute();
            } else {
                test();
            }
        } catch (Exception e) {
                SwingHelper.showErrorMessageMainFrame(e.getMessage());
            Logger.getRootLogger().error(e);
            e.printStackTrace();
        }
Run Code Online (Sandbox Code Playgroud)

但是假设抛出空指针异常,消息框为空,因为Exception不包含消息.为此,我添加了一个逻辑 -

 if(e instanceof NullPointerException){
        NullPointerException n =(NullPointerException) e;
        SwingHelper.showErrorMessageMainFrame("Unexpected Exception due at ");
    }else{
SwingHelper.showErrorMessageMainFrame(e.getMessage());
}
Run Code Online (Sandbox Code Playgroud)

这一切都很好,但我也希望显示行号.我怎样才能完成它.如何获取异常的行号?

java exception nullpointerexception

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

评论是否从最终 apk 中删除?

如果在创建 apk 的过程中删除了 java 文件中的注释,日志语句如何能够打印正确的行号?有人可以解释一下吗?我在编译 java 文件时也看到了相同的行为。

java android

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