1.定义一个User类如下:
/**
* @author lizhibiao
* @date 2018/11/27 17:21
*/
public class User
{
private String userName; private int age; private int cutScore; public String getUserName()
{
return userName;
} public void setUserName(String userName)
{
this.userName = userName;
} public int getAge()
{
return age;
} public void setAge(int age)
{
this.age = age;
} public int getCutScore() {
return cutScore;
} public void setCutScore(int cutScore) {
this.cutScore = cutScore;
}
}
 
2.测试null是否可以转为User类
public class Test
{
public static void main(String[] args)
{
User user = (User)null;
System.out.println(user);
}
}
运行结果如下:
null
 
也就是输出值为null,所以null可以强转为某个类编译不报错,但是强转后还是为null
 
 
3.如果null来调用方法则会报错
public class Test
{
public static void main(String[] args)
{
User user = (User)null;
System.out.println(user.getUserName());
}
}
运行结果如下:
Exception in thread "main" java.lang.NullPointerException
 at str.Test.main(Test.java:11)
 
报空异常
 
 
4.今天有网友加好友,给我发了一个例子,发现null强转某个对象后,调用方法居然不报空指针。然后我按他的意思写了个例子如下:
/**
* Hello world!
*
*/
public class App
{
private void commonMethod()
{
System.out.println("commonMethod");
} private static void staticMethod()
{
System.out.println("我是静态方法");
} public static void main(String[] args)
{
App app = (App)null; //调用静态方法,不报错
app.staticMethod(); //调用普通方法,报空指针
app.commonMethod();
}
}

运行结果:

 
分析:发现没,null强转为对象后,调用静态方法居然是不会报错的,调用普通方法会报空指针。原因是,我们在进行App app = (App)null强转操作时,虽然对象app是为null没有引用的,但是java里调用静态方法不需要创建实例对象,静态成员应该通过类型来访问,也就是类名.静态方法()就可以调用了静态方法了。所以,app.staticMethod()调用静态方法不报错。
 
感谢这位网友,也欢迎大家有疑问添加微信:lizb0907,进行交流。
最后,以后不怎么在博客园上写文章了,在新搭的博客上写文章:
有兴趣的伙伴们可以来交流,
坚持做好一件事!
 
 
有疑问,扫我二维码添加微信,欢迎骚扰!
坚持做一件事,一起学习。

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

 
 
 
 

java里null强转为某个类会报错吗?的更多相关文章

  1. MyEclipse上有main函数类运行报错:Editor does not contain a main type

    MyEclipse下有main函数类运行报错:Editor does not contain a main type 出现这种问题的原因是,该java文件所在的包没有被MyEclipse认定为源码包. ...

  2. 用idea工具对java打包:命令 mvn clear package,报错

    用idea工具对java打包:命令 mvn clear package,报错 网上都是eclipse的,要么是project structure和setting的(当然这俩也要用) 我都试了,每一个能 ...

  3. MyEclipse上有main函数类运行报错:Editor does not contain a

    MyEclipse下有main函数类运行报错:Editor does not contain a main type?出现这种问题的原因是,该java文件   MyEclipse下有main函数类运行 ...

  4. java中list强转为map类型

    起因:读取数据库文件的测试用例,测试用例需要存放到一个map中,方便下次调用, 读取的内容返回的内容存放在一个list中,并且数据内容是key=value的形式,最开始使用切片方式,做了很多无用功,后 ...

  5. java使用类数组 报错Exception in thread "main" java.lang.NullPointerException

    源代码如下: Point[] points=new Point[n];//Point是一个类 for(int i=0;i<n;i++) { System.out.print("请输入x ...

  6. java -jar 执行 eclipse export 的 jar 包报错处理

    1. 错误1:打 jar 包执行,报错,找不到 类库的 jar 包 F:\>java -jar remoteLogin.jarException in thread "AWT-Even ...

  7. eclipse开发Java web工程时,jsp第一行报错,如何解决?

    与myeclipse不同,eclipse开发java web项目时是要下载第三方软件(服务器)的,正是这个原因,很多初学者用eclipse学习java web的时候,总是会遇到一些小问题.其中常见的一 ...

  8. 在android 中开发java.net.SocketException: socket failed: EACCES (Permission denied) 报错

    在android中下载文件,写好下载文件的代码后需要配置相应的权限 <uses-permission android:name="android.permission.INTERNET ...

  9. java含有静态代码块新建的时候报错java.lang.ExceptionInInitializerError

    问题描述 最近在写一些单元测试用例,为了避免连接外界服务,所有选择mock了数据库Dao层,计划将数据库所需要的数据存在List中,在类加载的时候初始化List并且填充数据.代码如下: public ...

随机推荐

  1. 仿响应式html:JS来判断页面是在手机端还是在PC端打开的方法

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/a419419/article/detail ...

  2. 多线程(三) 同步synchronized

    五.同步 1.锁 多线程程序一般是为了完成一些相同的工作而存在的,因此有时间也会共享一些资源,例如对象.变量等等,此时如果不对各个线程进行资源协调,就会出现一些冲突,从而导致程序功能失效.例如下面的示 ...

  3. 野生小白纯js仿思否简易移动端

    初衷 感谢思否两个多月来的陪伴做这个东西还是多自己两个月多来的学习总结吧,顺带练手.希望能找到一个还可以的工作吧! 为什么没用框架 react过了一边官方文档,对状态提升和组件有点了解一下,懂得还是太 ...

  4. 严重: Servlet [SelectController] in web application [/servlet4] threw load() exception

    在web.xml路径配置.jar包导入都正确的情况下,那就考虑是环境问题. 1.servers-->clean 将代码从tomcat中清除 2.Project-->clean  将ecli ...

  5. Java技术综述

    自己打算好好学习下Java,所以想先明晰Java开发中到底有哪些技术,以便以后学习的过程中,可以循序渐进,随着学习的深入,本文将不断更新. Java基础教程将Java的入门基础知识贯穿在一个实例中,逐 ...

  6. grunt-contrib-imagemin 图像压缩

    grunt-contrib-imagemin:图像压缩 安装插件:npm install grunt-contrib-imagemin --save-dev 参数 optimizationLevel( ...

  7. 【leetcode】815. Bus Routes

    题目如下: We have a list of bus routes. Each routes[i] is a bus route that the i-th bus repeats forever. ...

  8. 【leetcode】1268. Search Suggestions System

    题目如下: Given an array of strings products and a string searchWord. We want to design a system that su ...

  9. ng-class的几种用法

    参考来自 https://www.cnblogs.com/zhoulin1234/p/9587955.html 方法1.逻辑在后面的中括号里面 ng-class="{true : 'chec ...

  10. k8s-for批量拉取国内镜像并做tag标签

    kubeadm config images list  ##查看所需镜像 如果是1.15 或者是其他就需要改改 又或者是下面的国内的镜像地址不能用了 百度完改改就ok   #!/bin/bash im ...