我对'System'类中的'out'静态字段感到困惑,它没有抛出任何nullpointer异常,即使它在声明中被指定为'null'作为最终值。
语句是“System.out.println();”-为了理解整个语句的实现,我使用EclipseIDE追溯到它的实现,方法是按ctrl键并单击“Open Declaration”选项。
这就是“out”静态字段在“System”类中声明的方式。
public static final PrintStream out = null;
为了检查这种实现,我尝试了一个非常基本的代码,IDE确实抛出了一个NullPointerException。
下面是我尝试过的代码
public class examplo1 {
public static final TryingAnother sameTry = null;
public static void main(String[] args) {
sameTry.addO();
System.out.println();
}}
尝试下面的另一个类代码
public class TryingAnother {
int a = 25;
public void addO()
{
a = a + 25;
System.out.println(a);
}}
提前感谢您的答案!
System.out是默认的outputstream这通常是终端.如果它被声明为您已经编写,那么init是由JVM完成
我创建了一个从HashMap中删除学生的方法。当id为NULL时,它会抛出一个异常。有人知道它为什么不起作用吗? 公共类应用程序{public static void main(String[]args){ }
问题内容: 根据文档,该方法返回: 如果参数是,则字符串等于; 否则,返回的值。 但是,当我尝试这样做时,怎么会这样: 它会抛出NPE吗?(如果你不相信,请自己尝试!) 怎么会这样呢?文件在骗我吗?这是Java中的主要错误吗? 问题答案: 问题是方法已重载: String.valueOf(Object) String.valueOf(char[]) Java规范语言要求在这种情况下,选择最具体的重
下面是我的代码。当我运行它时,我在线程“main”java.lang.IndexOutOfBoundsException:Index:3、Size:2中得到异常,而不是我的异常消息。谁能解释一下我做错了什么,为什么会这样?谢谢!
问题内容: 运行此命令时: 响应为: 这对我来说真是太棒了。我本以为这会带来编译时错误。 为什么我可以在Java中抛出null,为什么将其转换为NullPointerException? (实际上,鉴于我抛出的是null,因此我不知道这是否是“ upcast”) 除了一个非常愚蠢的面试问题(请没人在面试中问这个问题)之外,我看不到任何理由。也许您想被解雇,但这就是…我的意思是,为什么还会有人呢?
我在行得到异常。怎么会呢?这到底是怎么回事? 这是我的密码。 堆栈跟踪
我有一段类似这样的代码: 我的测试是: 上面的代码不应该抛出NPE吗? 当我将测试更改为: 然后我的代码正确地抛出了一个空指针异常。 我的测试第一版和第二版有什么区别? 在我的第一个版本中,我告诉mockA返回mockB。但是我也将mockB设置为null,所以当调用b.doSomething()时,我认为该方法应该抛出一个空指针,因为它试图调用null.doSomething()。 我知道我应该