首页 > 编程语言 >初学java懵了,这个异常是怎么产生的?

初学java懵了,这个异常是怎么产生的?

时间:2022-12-23 18:02:53浏览次数:37  
标签:解决办法 过年 java Scanner 壹哥 初学 咱妈 异常


一. 异常现象

最近壹哥的老表开始学Java啦,结果学了还不到两天,就遇到了他解决不了的问题,然后就跑来问我了。不知有没有其他初学java的小伙伴,大家可以过来围观一下,看看下面的问题你有没有遇到过。

初学java懵了,这个异常是怎么产生的?_Java

二. 异常原因

那上面的这个问题是怎么产生的?又该怎么解决呢?大家先不要慌,且听壹哥来给大家分析一把。其实初学者遇到的绝大多数问题,都是因为粗心马虎导致的。而这个问题,也是如此。如果我们仔细观察报错的提示信息,就会发现这是因为命名不规范而导致的问题!

怎么个意思?命名不规范还能导致什么问题?当然啦,就好比在清代,你非得叫”朱反清“,我觉得十有八九是要被敲脑壳的。

再给大家举个例子:今天我跟我老婆讨论去谁家过年的问题。

我:老婆,我妈问咱们,今年是在我妈这过年,还是去你妈那过年。


老婆:(很生气)......你什么意思,咱们都结了婚了,你还跟我分你妈、我妈?!都是咱妈!!!给你重新组织语言的机会!


我:(汗).......好好。那我说了哈,咱妈问咱们,今天是在咱家过年,还是在咱妈家过年。如果咱们在咱妈家过年,咱妈就提前准备点东西,让咱们带过去。如果咱们在咱妈家过年,咱们也准备点东西,让咱们给咱妈提前送过去。你定,咱们去哪个妈家过年,嘿嘿.......

以上代码中问题的原因,其实就是因为我老表定义的Scanner类名(咱妈),与Java自身的 java.util.Scanner(咱妈) 命名重名导致的问题!

三. 解决办法

那这个问题该如何解决呢?很简单,可以采用如下方法:

  1. 第一种解决办法,是采用自己定义的Scanner类。虽然这里会有两个Scanner类,但我们在本类中使用时,默认的Scanner是你自己定义的Scanner类,因为类中默认有一个空参的构造器,所以去掉System.in即可!
  2. 第二种解决办法,是采用Java自带的Scanner类。如果你的本意是使用jdk自带的Scanner类来输入管理对象,那么请加定语,即代码要写成如下形式:
java.util.Scanner sc = new java.util.Scanner(System.in);

3.第三种解决办法,就是规范类的命名。其实最好的解决办法,就是修改自己定义的类的名称,不要与系统自带的类名相同,这样是最简单也最优的办法。

以上就是壹哥给大家提供的解决办法,你还有更好的解决办法吗?

现在你知道该怎么解决这个问题了吗?如果你还有其他问题,可以私信壹哥,或者在评论区给壹哥留言哦!

 

标签:解决办法,过年,java,Scanner,壹哥,初学,咱妈,异常
From: https://blog.51cto.com/u_7044146/5966095

相关文章

  • 集合泛型不匹配导致的ClassCastException异常解决
    一.代码重现前几天壹哥的一个学生小K编写集合代码时,运行的结果中却出现了一个自己没见过的异常,他不知道怎么解决,于是就跑来找壹哥帮忙。下面就是小K的代码,大家可以来看看,如......
  • ArrayIndexOutOfBoundsException数组下标越界异常的解决过程
    一.异常示例对于刚开始学习Java的大部分人来说,在使用数组的过程中,经常会遇到数组下标越界的异常。下面壹哥就以一个实际案例来给大家进行说明:publicclassArrayTest{......
  • UnsupportedOperationException异常解决
    壹哥在教课的过程中,经常会让大家思考如何才能让自己一点点成为一个经验丰富的开发大神。我觉得成为大神的一个方法就是,要养成良好的学习习惯,比如记录学习开发过程中遇到的每......
  • 实用干货!Java乱码问题原因及解决方案大全
    最近有粉丝给壹哥发来私信,问我Java里的乱码问题该怎么解决,说是自己被乱码问题给弄的焦头烂额的。其实乱码问题解决起来很简单,很多人搞不定乱码是由于没有找到导致乱码的根本......
  • ”一个馒头引发的血案“|记Mybatis之BindingException异常的产生及解决过程
    一.业务场景前几天壹哥带学生做一个项目,需要更新数据库中的车辆信息表,具体需求是要根据指定车辆的设备id(编号和设备ID均非主键)来更新车辆信息。壹哥要求学生们用Mybatis......
  • java命令执行之-jar与-cp或-classpath
    参考java-jar命令运行jar包时指定外部依赖jar包differences-between-java-cp-and-java-jar背景使用java-cplib.jar-jarpointed.jar时始终显示NoClassDefFoundEr......
  • 一篇文章带你了解Java中的运算符
    前言在前一篇文章中,壹哥给大家讲解了Java数据类型之间的转换,包括自动类型转换、强制类型转换、隐含的强制类型转换等问题。且在上一篇文章中,我还简单地给大家提到了Java的......
  • Java开发如何通过IoT边缘ModuleSDK进行进程应用的开发?
    摘要:为解决用户自定义处理设备数据以及自定义协议设备快速接入IOT平台的诉求,华为IoT边缘提供ModuleSDK,用户可通过集成SDK让设备以及设备数据快速上云。本文分享自华为云社......
  • Java开发如何通过IoT边缘ModuleSDK进行进程应用的开发?
    摘要:为解决用户自定义处理设备数据以及自定义协议设备快速接入IOT平台的诉求,华为IoT边缘提供ModuleSDK,用户可通过集成SDK让设备以及设备数据快速上云。本文分享自华为云社区......
  • 观察者模式javac++
    软件设计                 石家庄铁道大学信息学院 实验21:观察者模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解观察者模式......