相关疑难解决方法(0)

为什么String.valueOf(null)抛出NullPointerException?

根据文档,该方法String.valueOf(Object obj)返回:

如果参数是null,那么一个字符串等于"null"; 否则,obj.toString()返回值.

但是当我尝试这样做时怎么样:

System.out.println("String.valueOf(null) = " + String.valueOf(null));
Run Code Online (Sandbox Code Playgroud)

它会引发NPE而不是?(如果你不相信,请亲自尝试!)

    Exception in thread "main" java.lang.NullPointerException
    at java.lang.String.(Unknown Source)
    at java.lang.String.valueOf(Unknown Source)

怎么会发生这种情况?文档对我说谎吗?这是Java中的一个主要错误吗?

java null api-design overloading nullpointerexception

122
推荐指数
3
解决办法
7万
查看次数

Java堆栈跟踪中的"未知源",但行号在类文件中

我编写了一个超级简单的java类,它应该抛出异常.但是我得到的堆栈跟踪看起来像这样:

java.lang.RuntimeException: hello
        at Main.go(Unknown Source)
        at Main.main(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

注意:堆栈跟踪中没有行号,我希望有.

在搜索此问题时您找到的答案都是在编译时添加正确的参数,以确保行号实际上成为类文件.但是,我不相信这是我的问题,因为我在我的ant build.xml中有这个

<javac
  debug="true"
  debuglevel="lines,vars,source"
  includeAntRuntime="false"
  classpathref="classpath.compile"
  srcdir="${src.dir}"
  destdir="${build.classes}" />
Run Code Online (Sandbox Code Playgroud)

此外,根据javap,它看起来像行号确实成功:

$ javap -l ./build/classes/Main | head -n 9
public class Main extends java.lang.Object{

public Main();
  LineNumberTable: 
   line 14: 0
   line 22: 4
   line 23: 15
   line 24: 26
Run Code Online (Sandbox Code Playgroud)

什么给出了什么?当我运行代码时,是否需要在jvm中设置一个参数?

谢谢!

java ant

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

下载源代码后,为什么我会在堆栈跟踪中看到未知源?

我想深入了解正在运行单元测试的异常的详细信息,但 HSQLDB 的堆栈跟踪部分显示为Unknown Source。我正在使用 Maven,并且已下载源代码和文档,并且可以在 IDE 中看到它们正确定义。

有什么想法为什么我仍然会看到未知来源吗?

Caused by: org.hsqldb.HsqlException: incompatible data type in operation
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.NumberSequence.setDefaults(Unknown Source)
at org.hsqldb.NumberSequence.<init>(Unknown Source)
at org.hsqldb.ParserTable.readColumnDefinitionOrNull(Unknown Source)
at org.hsqldb.ParserTable.readTableContentsSource(Unknown Source)
at org.hsqldb.ParserTable.compileCreateTableBody(Unknown Source)
at org.hsqldb.ParserTable.compileCreateTable(Unknown Source)
at org.hsqldb.ParserDDL.compileCreate(Unknown Source)
at org.hsqldb.ParserCommand.compilePart(Unknown Source)
at org.hsqldb.ParserCommand.compileStatements(Unknown Source)
at org.hsqldb.Session.executeDirectStatement(Unknown Source)
at org.hsqldb.Session.execute(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

java hsqldb maven

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