自动将公共更改为私有(Java)

时间:2012-02-17 13:16:43

标签: java eclipse refactoring private

我正在对代码进行重构,将其他语言翻译成Java,我想自动完成。我的问题是我有很多非私有的方法,但只是在声明它们的同一个类中被调用,我想让它们变成私有的。我有很多课程,我想如果有一些东西可以帮助我半自动地做,我想知道它。

你知道我是否可以寻找这些方法让它们快速私密化吗?我正在使用Eclipse。

3 个答案:

答案 0 :(得分:9)

全部替换是一个选项。

但是我建议你不要这样做。程序员可以使用privatepublic。如果您只从类本身调用方法,则不会自动表示 private。你能做的最好的事情就是一次一个地通过它们并问自己“这个方法应该是公共接口的一部分还是?”。

就个人而言,每当我在类中遇到private方法时,我需要使用它,99%的时间我将其留下private并寻找解决方法。那是因为我认为代码的原始作者知道他在做什么。当然,这并不总是适用。

private是一份意向陈述。这就像说 - 如果你需要在课外使用它,那你就做错了。你不应该需要这个。

答案 1 :(得分:2)

要注意的一件事是,由于它被假定为公共范围,因此您可以在类之外调用该方法。如果您能够保证自己拥有所有可能的代码来调用它。你也可以通过右键单击方法检查方法是否在eclipse中使用,并使用Reference或(ctrl + shift + G)确保没有调用此方法的位置。

要实际进行从公开到私有的更改,搜索和替换可能是您最好的选择。

答案 2 :(得分:1)

也许有一种方法是将“公共”单词替换为所选文档中的“私有”单词并使用“全部替换”功能。但是如果你在方法签名以外的某些代码的内容中有“公共”,它会产生副作用,例如:在一个字符串里面也许。

替换您选择的所有方法签名后,请再次检查以确保它们符合您的需要。