遗留应用程序对System.out的调用超过3000次。使用Intellij的重构工具,我如何(轻松地)将对“System.out”的调用替换为对log4j/java.util.logging/etc的调用?我浏览了重构菜单,但没有看到任何选项。注意:我知道我可以使用“源代码查找/替换”,但很好奇重构工具是否处理了这种类型的用例谢谢 最佳答案 使用StructuralSearchandReplace 关于java-如何使用Intellij重构将"System.out"调用替换为日志记录?
重构方法时,很容易在Java中引入二进制不兼容(与以前版本的代码)。考虑更改一个方法以将其参数类型扩展到父接口(interface):voiddoSomething(Stringx);//changeittovoiddoSomething(CharSequencec);所有使用此方法的代码都将继续编译而无需更改,但它确实需要重新编译(因为旧的二进制文件将因MethodNotFoundError失败)。如何将方法拉入父类。这需要重新编译吗?//beforepublicclassBextendsA{protectedvoidx(){};}//afterpublicclassA{public
我有这种情况,两组数据之间存在父子关系。我有一个父文档集合和一个子文档集合。要求是parent和他们对应的child需要导出为'a'pdf文档。上述情况的简单实现如下(下面是java-ish伪代码):for(DocumentparentDocument:Documents){ExportToPdf(parentDocument);for(DocumentchildDocument:parentDocument.children()){AppendToParentPdf(childDocument);}}上面的内容可能会解决问题,但是突然间需求发生了变化,现在每个parent和他们相应的
Eclipse中针对包名称的重构功能过去一直对我有用,直到……今天:这是我第一次收到这个奇怪的重构错误,我不知道该怎么办:Anexceptionhasbeencaughtwhileprocessingtherefactoring'RenamePackage'.Reason:Problemsencounteredwhilemovingresources.Click'Undo'toundoallsuccessfullyexecutedchangesofthecurrentrefactoring.Click'Abort'toabortthecurrentrefactoring.什么可以解释这
我想压缩一些数据,所以我遇到了DeflatorInputStream和DeflatorOutputStream类。但是,以下示例表明在使用这些类时我似乎无法重建我的原始数据。当我切换到ZipInputStream和ZipOutputStream时它确实可以工作,但由于我不需要zip文件本身,我认为通用压缩会更好。我主要想了解为什么这个示例不起作用。//Createsome"random"dataintbytesLength=1024;byte[]bytes=newbyte[bytesLength];for(inti=0;i 最佳答案
我继承了两个相当重要的代码库,它们使用spring来配置应用程序。现在我需要重新配置应用程序。但是很多配置是通过Autowiring提供的,所以几乎不可能找出实际配置是什么。项目大小适中,每个项目大约有20个maven模块,包括集成测试模块等。大多数模块为各种目的定义了一些应用程序上下文,其中包含一个或两个本地spring配置文件以及一个或两个它所依赖的核心模块。结果是无数的配置,并且我不能更改类或变量名称(或setter方法)而不冒破坏某些上游或下游模块中的依赖关系的风险,即使在项目的任何地方都看不到这种依赖关系。我如何在spring中有效地使用Autowiring的依赖项?任何人,
Java反射提供了一种在运行时自省(introspection)对象的机制。没有第二个想法,这是一个很棒的功能,但它打破了所有重构约定!即使在现代IDE中也没有简单的方法(除了FileSearch)来知道引用了哪个属性以及引用的位置。这使得重构变得更加复杂(令人厌烦!)并且容易出错。坦率地说,不仅仅是ReflectionAPI;Hibernate映射文件(hbm.xml)和JSP文件都将属性引用为字符串,当您重构属性名称时,您必须在所有这些地方手动更改.更糟糕的是,Hibernate映射文件或JSP文件中的更改会导致运行时错误。我很想知道其他程序员如何用Java处理这个问题。有一些工具
编辑:我提交了一个Eclipseenhancementrequestforthisrefactoring.有没有办法将私有(private)字段从一个类移动到它的辅助类?下面的chicken-scratchUML显示了我现在正在手动执行的操作。C1类在重构之前具有私有(private)的字段和对Helper对象的私有(private)最终引用。重构后,C1'中对field的所有引用都改为helper.getField()和helper.setfield()视情况而定。classField{}classC1{finalprivateFieldfield;finalprivateHelpe
我继承了一个相当大的项目,有几万行,但是以前的开发人员只把它们打包成6个文件(天哪!)...所以为了可读性,我想自动将所有类拆分到它们自己的cpp/h文件中。是否有任何工具能够做到这一点? 最佳答案 为了重构您的C++代码库,您需要的是一个可以解析C++、保留头文件、同时遵循#includes并处理它们的工具。你必须为每对依赖项构建一个“a-depends-on-b”映射,然后你必须对它们进行聚类。最后,您必须能够根据聚类重新生成源代码。并且您想在完整的代码库上执行此操作,而不仅仅是一个编译单元。这是一个很难找到的工具:-}我认为您
我看到了一些好的商业工具,比如:VisualAssistXCodeRushResharper(.NET)有什么免费的/开源的工具/插件可以做类似的工作吗? 最佳答案 微软的ProductivityPowerTools怎么样? 关于c++-VisualStudio2012的任何免费C/C++重构工具/插件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/17314359/