• 初学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】异常
    vue官方文档(18) :具名插槽示例
    基于java web个人财务管理系统
    BootStrap在Vue中的安装使用详细教程
    Python实现的天气预报APP舆情热词分析程序
    回调函数方式方法完整学习
    spring cloud 快速上手系列 -> 03-消息队列 Stream -> 032-使用spring cloud bus实现配置中心热刷新-Server
    Web前端大作业 体育主题足球网页制作 足球梅西HTML网页设计制作 dreamweaver学生网页源代码
    用户态与内核态
    python图像匹配:如何使用Python进行图像匹配
  • 原文地址:https://blog.csdn.net/syc000666/article/details/125420313