快速修正

Java 编辑器提供了对输入时和编译后发现的问题的更正。为了显示有可用于问题或警告的更正建议,编辑器的注释栏将显示“灯泡”。
单击灯泡或调用 Ctrl+1(编辑/快速修正)将在光标位置处显示对问题的建议。
快速修正选择对话框

提供了下列快速修正:

包声明
  • 添加丢失的包声明或更正包声明
  • 将编译单元移至与包声明相对应的包
导入
  • 除去未使用的、不可解析的或不可视的导入
  • 对于导入中的问题调用“组织导入”
类型
  • 对于不能解析的类型的引用,创建新的类或接口
  • 更改所访问的但是不可视的类型的可视性
  • 对于不能解析的类型的引用,重命名为相似类型
  • 对于不能解析但却存在于项目中的类型,添加 import 语句
  • 对于歧义类型引用,添加显式的 import 语句(同一类型的两个按要求导入)
  • 如果类型名与编译单元名不匹配,则重命名类型或重命名编译单元
  • 除去未使用的私有类型
构造函数
  • 对于对不能解析的构造函数的引用,创建新的构造函数(创建 this、super 或 new 类)
  • 对于参数不匹配的构造函数引用,重新排序或除去自变量
  • 将具有构造函数名的方法更改为构造函数(除去返回类型)
  • 更改所访问的但是不可视的构造函数的可视性
  • 除去未使用的私有构造函数
  • 当对隐式缺省构造函数的超调用未定义、不可视或抛出异常时,创建构造函数
  • 如果类型包含未实现的方法,则将类型修饰符更改为“抽象”或添加要实现的方法
方法
  • 对于对不能解析的方法的引用,创建新方法
  • 对于对不能解析的方法的引用,重命名为相似方法
  • 对于参数不匹配的方法引用,重新排序或除去自变量
  • 更正所引用的方法的访问(可视性和静态)
  • 除去未使用的私有方法
  • 对于缺少返回类型或返回类型与返回语句不匹配的方法,更正返回类型
  • 如果缺少返回语句,则添加它
  • 对于不具有主体的非抽象方法,更改为“抽象”或添加主体
  • 对于非抽象类型中的抽象方法,除去方法的“抽象”修饰符或使类型为“抽象”类型
  • 对于带有主体的抽象/本机方法,除去抽象或本机修饰符或除去主体
  • 如果在构造函数调用内调用方法,则将方法访问更改为“静态”(super 和 this)
  • 将方法访问更改为缺省访问以避免仿真方法访问
字段和变量
  • 更正所引用的字段的访问(可视性和静态)
  • 对于对不能解析的变量的引用,创建新字段、参数或局部变量
  • 对于不能解析的引用,重命名为具有相似名称的变量
  • 除去未使用的私有字段
  • 更正静态字段的非静态访问
  • 对于在外部类型中访问的局部变量,添加“终态”修饰符
  • 将字段访问更改为缺省访问以避免仿真方法访问
  • 更改局部变量类型以修正类型不匹配
  • 初始化尚未初始化的变量
异常处理
  • 除去不需要的 catch 块
  • 通过用 try/catch 括起来或周围的 try 块添加 catch 块来处理未捕获的异常
  • 通过将 throw 声明添加至父方法或通过将现有 throw 声明一般化来处理未捕获的异常
其它
  • 添加强制转型或更改强制转型以修正类型不匹配
  • 对于非 NLS 字符串,打开 NLS 向导或标记为非 NLS

即使在没有问题或警告时,“快速辅助”也是可用的建议:没有显示灯泡,因此用户必须了解可用的辅助。

快速辅助
  • 将 catch 子句替换为父方法中的 throws 声明
  • 将表达式语句转换为对新局部变量或新字段的赋值
  • 除去外围的“if”、“for”、“while”和“do”语句
  • 除去带有单个 catch 或 finally 块的外围 try 块
  • 除去外围的匿名类、块或括号
  • 对处于链接“模板”方式的类型、方法或变量进行本地重命名
  • 用模板(“if”和“while”等)将选择的行括起来

相关概念
Java 编辑器

相关参考
JDT 操作

Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved.