抽取方法错误

试图抽取方法时,可能会发生下列的一个或多个常见错误。

所选的块引用了选择之外声明的本地类型

本地类型声明不是选择的一部分,但是为抽取而选择的语句之一引用了它。扩展选择,让它包括本地类型声明,或者减少选择,不选择对本地类型声明的引用。

在选择外部引用了在所选的块中声明的本地类型

选择中包含本地类型声明,但还在所选的语句外部引用了该类型。扩展选择,让它包含对本地类型的所有引用,或减少选择,不选择本地类型声明。

歧义返回值:所选的块中包含本地变量的多个赋值

在所选的块中发现本地变量的多个赋值。减少选择,只选择一个赋值, 或者扩展选择,让该选择至少包含对本地变量的所有引用。

歧义返回值:发现对所选的本地声明的多个引用

在选择外部还引用了在选择内部声明的多个变量。减少选择,只选择一个变量声明, 或扩展选择,让选择至少包含对所选的变量声明的所有引用。

歧义返回值:发现本地变量的赋值以及对所选的本地声明的引用

所选的块中包含对本地变量的赋值。另外,在选择外部还引用了在选择内部声明的变量。减少选择,只选择赋值或本地声明。或者,扩展选择,让选择中还包含对本地变量的所有引用或所有变量声明。

歧义返回值:选择中包含返回语句,并且值必须是从抽取的方法中返回的

所选的块包含返回语句。另外,值必须是从抽取的方法中返回的, 原因是还选择了本地变量的赋值或者本地声明。从选择中排除返回语句,或者从选择中排除对本地变量的所有赋值以及所有本地类型声明。

歧义返回值:表达式具有返回类型,并且值必须是从抽取的方法中返回的

所选的语句是一个表达式(例如,if-then-else 语句的条件部分),它必须返回布尔值。另外,值必须是从抽取的方法中返回的,原因是还选择了本地变量的赋值。要校正该问题,应选择整个语句,而不是只选择条件部分。

选择包含中断语句,但是未选择相应的中断目标

要校正该问题,扩展该选择,使它包含中断/继续目标, 或者减少选择,以便选择不包含中断/继续语句。

选择中包含了继续语句,但是未选择相应的继续目标

要校正该问题,扩展该选择,使它包含中断/继续目标, 或者减少选择,以便选择不包含中断/继续语句。

不能从选择中抽取新方法。只能抽取顶级方法的主体中的语句

这是类属错误消息,每当我们遇到了问题,但实际并不知道问题事实是什么时,就会显示此错误消息。显示此错误消息的典型情况是:

选择在注释内开始

不能抽取注释的部分。扩展选择,让它包含整个注释,或减少选择,根本不包括注释。

选择在注释中结束

不能抽取注释的部分。扩展选择,让它包含整个注释,或减少选择,根本不包括注释。

不能抽取在语句中间结束的选择

调整选择,使它完全包含一组语句。抽取方法 sense 中的语句是用分号隔开的。

其他问题

下列问题是很显然的。