首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

50个常见的 Java 错误及避免方法——第一部分

现在你们看到的是我放在收藏夹中关于Java编程中最常见的错误,其中包括了编码示例和教程。以帮助大家解决常见问题。(代码图片点击可放大)

编译器错误:

当Java软件代码通过编译器运行时,会创建编译器错误消息。谨记编译器可能会针对一个错误抛出许多错误消息。所以得修复第一个错误并重新编译。这样做可以解决很多问题。

1.“…Expected”

当代码中缺少某些东西时,会发生此错误。通常是因为缺少分号或右括号。

通常,此错误消息不会精确确定问题的确切位置。为了找到错误:

确保所有的左括号都有一个对应的右括号。

在查看指示的Java代码行之前顺便看看行。此Java软件错误没有被编译器注意到,直到在代码中更深层次地查看。

有时一个字符,如一个左括号,并不应该放在Java代码的原先位置。所以开发人员没有放置一个右括号来平衡括号。

2.“Unclosed String Literal”

如果字符串文字结束时没有引号的话,会创建“Unclosed String Literal”的错误消息,并且消息将显示在与错误相同的行上。(@DreamInCode)Literal是值的源代码。

通常。这种情况发生在:

字符串文字不以引号结尾。这很容易纠正,加上所需的引号,闭合字符串文字即可。

字符串文字扩展超过一行。长字符串文字可以分解成字符串文字,并加上加号(“+”)。

作为字符串文字一部分的引号不通过反斜杠(“\”)进行转义。

3.“Illegal Start of an Expression”

出现“Illegal Start of an Expression”错误的原因有很多。因此名列不太有用的错误消息之一。有些开发者甚至认为这是由坏的代码造成的。

通常,创建表达式是为了生成新的值或为变量分配值。编译器期望找到表达式,但因为语法不符合预期而找不到表达式。(@StackOverflow)在这些语句中就可以发现此错误。

4.“Cannot Find Symbol”

这是一个非常常见的问题,因为Java中的所有标识符都需要在被使用之前进行声明。 发生错误的原因在于编译代码时,编译器不明白标识符的含义。

可能收到“Cannot Find Symbol”信息的原因有很多。

标识符声明时的拼写可能与在代码中使用时的拼写不同。

变量从未被声明。

变量使用时与声明未在同一范围内。

类没有导入。

5.“Public Class XXX Should Be in File”

当XXX类和Java程序文件名不匹配时,会发生“Public Class XXX Should Be in File”消息。只有当类和Java文件相同时,代码才会被编译。(@coderanch):

为解决这个问题:

类和文件命名相同。

确保两名称的情况一致。

6.“Incompatible Types”

“Incompatible Types”是指定语句尝试将变量与类型表达式配对时发生的逻辑错误。 通常会在代码尝试将文本字符串放入到整型中时出现,反之亦然。这并非Java语法错误。(@StackOverflow)

当编译器给出“Incompatible Types”消息时,就不是简单修复可以摆平的了:

有可以转换类型的函数。

开发人员可能需要更改代码预期的功能。

7.“Invalid Method Declaration;

误消息表示方法签名中未明确声明方法的返回类型。

有若干途径会触发“Invalid Method Declaration; Return Type Required” 错误:

忘记声明类型

如果方法没有返回值,那么需要将“void”声明为方法签名中的类型。

构造函数名称不需要声明类型。 但是,如果构造函数名称中存在错误,那么编译器将会把构造函数视为没有指定类型的方法。

8.“Methodin ClassCannot Be

此Java软件错误消息是比较有用的错误消息之一。 它解阐明了方法签名正在调用错误的参数。

调用的方法期待方法声明中定义的某些参数。检查方法声明并仔细调用,以确保它们是兼容的。

9.“Missing Return Statement”

当一个方法没有返回语句时,就会出现“Missing Return Statement”的消息。每个返回值(非void类型)的方法都必须有一个字面上返回该值的语句,以便在方法之外调用它。

编译器抛出“Missing Return Statement”消息的原因有若干:

返回语句由于错误被省略。

该方法没有返回任何值,但类型void在方法签名中未声明。

10.“Possible Loss of Precision”

当更多的信息被分配给一个变量而超过它的容量,就会发生“Possible Loss of Precision”消息。如果出现这种情况,那么碎片就会被扔掉。 如果这样没有关系,那么代码需要将变量显式声明为新的类型。

“Possible Loss of Precision”错误通常发生在:

尝试为整数数据类型的变量分配一个实数。

尝试为整数数据类型的变量分配一个double。

11.“Reached End of File

当程序缺少关闭大括号(“}”)时,Java代码中就会发生此错误消息。 有时我们可以通过在代码的末尾放置大括号来快速修复错误。

上述代码将导致以下错误:

编写utilities程序和适当的代码缩进可以更容易地找到这类遗漏的大括号。

12.“Unreachable Statement”

当一个语句写在一个阻止它执行的地方时,就会发生“Unreachable statement”错误。通常它出现在中断或返回语句之后。

13.“VariableMight Not Have ”

当方法中声明的局部变量未初始化时,就会发生这种错误。它也会出现在没有初始值的变量是if语句组成部分的情况下。

14.“Operator … Cannot be Applied to”

当操作符用于非定义中的类型时,就会出现此问题。

当Java代码尝试在计算中使用类型字符串时,通常会发生这种情况。 要修复的话,就需要将字符串转换为整型或浮点型。

15.“Inconvertible Types”

当Java代码尝试执行非法转换时,就会发生“Inconvertible Types”错误。

例如,布尔值不能转换为整型。

16.“Missing Return Value”

当return语句包含不正确的类型时,你将收到“Missing Return Value”的消息。例如,以下代码:

返回以下错误:

通常,有一个返回语句不返回任何东西。

下周我会继续更新该系列,希望广大程序员能收藏起来以备不时之需。

同时我还会在未来更新 JavaScript 的相关学习教程,记得随时关注噢~

如果你还有希望学习的某类语言或其他需要解决的问题,留言给我。我会按照大家的需求进行更新。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180405A0P5G500?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券