我正在对代码进行重构,将其他语言翻译成Java,我想自动完成。我的问题是我有很多非私有的方法,但只是在声明它们的同一个类中被调用,我想让它们变成私有的。我有很多课程,我想如果有一些东西可以帮助我半自动地做,我想知道它。
你知道我是否可以寻找这些方法让它们快速私密化吗?我正在使用Eclipse。
答案 0 :(得分:9)
全部替换是一个选项。
但是我建议你不要这样做。程序员可以使用private
和public
。如果您只从类本身调用方法,则不会自动表示 为private
。你能做的最好的事情就是一次一个地通过它们并问自己“这个方法应该是公共接口的一部分还是?”。
就个人而言,每当我在类中遇到private
方法时,我需要使用它,99%的时间我将其留下private
并寻找解决方法。那是因为我认为代码的原始作者知道他在做什么。当然,这并不总是适用。
private
是一份意向陈述。这就像说 - 如果你需要在课外使用它,那你就做错了。你不应该需要这个。
答案 1 :(得分:2)
要注意的一件事是,由于它被假定为公共范围,因此您可以在类之外调用该方法。如果您能够保证自己拥有所有可能的代码来调用它。你也可以通过右键单击方法检查方法是否在eclipse中使用,并使用Reference或(ctrl + shift + G)确保没有调用此方法的位置。
要实际进行从公开到私有的更改,搜索和替换可能是您最好的选择。
答案 2 :(得分:1)
也许有一种方法是将“公共”单词替换为所选文档中的“私有”单词并使用“全部替换”功能。但是如果你在方法签名以外的某些代码的内容中有“公共”,它会产生副作用,例如:在一个字符串里面也许。
替换您选择的所有方法签名后,请再次检查以确保它们符合您的需要。