在Eclipse的"Package Explorer"中,假设我有一个这样的包列表:
如果我想将包结构的"com"部分重命名为"animal",那么我可以选择每个包(上面)并执行重构>重命名.
如果我有许多以"com"开头的软件包,那么这个过程可能需要一段时间.是否有一种简单的方法来重命名"com"包名称,而无需在Package Explorer中单独重命名每个包?或者在重命名之前从构建路径中删除这些包?
我试着去"导航器"窗格,它在树形结构中显示文件夹,但我没有给予重命名功能.
我已经给马里奥的答案赢得了100分的奖励,但是如果我看到新的好答案,我可能会开始第二个100分的奖励.这就是为什么我要保持这个问题的开放并且不会选择最终的答案,尽管将奖金授予马里奥.
这可能看起来像一个简单的问题(研究代码和重构),但我希望那些有更多经验的人可以给我一些可靠的建议.
该库是一个开源的20,000行库,它们都在一个文件中,我自己也没有写过.代码看起来写得很糟糕,单个文件甚至是一个更大的问题,因为它至少每次我想要进行更改时都会冻结eclipse半分钟,这也是我认为重构这个库的重要原因之一小班.
因此,除了阅读代码并试图理解它之外,在重构像这样的库时,是否存在常见的(或不常见的)提示?你有什么建议让我的生活更轻松一点?
感谢大家的意见.
我正在重构一些旧代码并遇到以下代码行将字节转换为GB.
decimal GB = KB / 1024 / 1024 / 1024;
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来重构下面的代码?
更新
我的意思是说千兆字节的字节数.我提供了错误的信息.
Rope是Python的重构库,RopeVim是一个调用Rope的Vim插件.
使用RopeVim的想法对我来说似乎很棒,有没有关于RopeVim"入门"的文档?
我遵循了以下文档:https://bitbucket.org/agr/ropevim/src/tip/README.txt
我想我正在寻找:
我试图使用重构选项在android studio 0.8.9中提取样式.但由于某种原因,它似乎被禁用了.我试过清理和重建项目以防万一,甚至重新启动Android Studio,但似乎没有启用提取样式选项.
Vim中是否有任何插件或内置方法可以对C或C++代码进行重构,比如Eclipse中的重构工具?
我特别热衷于Eclipse中的提取方法重构工具,它将从新方法中确定参数,并且通常还会猜测要用作返回值的变量.
在Visual Studio中,如果我定义一个类来实现一个接口,例如
class MyObject : ISerializable {}
Run Code Online (Sandbox Code Playgroud)
我可以右键单击ISerializable,从上下文菜单中选择" 实现接口 ",并查看我的类定义中出现的相应方法.
class MyObject : ISerializable {
#region ISerializable Members
public void GetObjectData(SerializationInfo info,
StreamingContext context)
{
throw new NotImplementedException();
}
#endregion
}
Run Code Online (Sandbox Code Playgroud)
在Mac上的Xcode中有什么类似的功能吗?我希望能够以这种方式自动实现协议.也许使用生成的可选方法但注释掉了.
假设您的软件现有版本有几个维护分支.一些开发人员正在对维护分支进行直接更改,并定期合并到主干中.现在,在主干代码行中进行了广泛的重构,计划即将发布主要版本.但是这使得维护分支基本上与主干中的代码不兼容,因为它们可能依赖于不再存在的代码.
你如何在实践中处理这种情况?
我保持了C#桌面应用程序,在Windows 7上,使用Visual Studio 2013和某处有以下行,试图创建一个0.01十进制值的代码,使用十进制(的Int32 [])构造函数:
decimal d = new decimal(new int[] { 1, 0, 0, 131072 });
Run Code Online (Sandbox Code Playgroud)
第一个问题是,它与以下不同吗?
decimal d = 0.01M;
Run Code Online (Sandbox Code Playgroud)
如果没有什么不同,开发人员为什么会遇到这样编码的麻烦?
我需要更改此行以创建动态值.就像是:
decimal d = (decimal) (1 / Math.Pow(10, digitNumber));
Run Code Online (Sandbox Code Playgroud)
我会以这种方式引起一些不受欢迎的行为吗?
我正在重构一个使用androidx的应用程序.我一直在努力摆脱所有不支持它的库.我以为我已经删除了所有使用支持库的库,但看起来仍然有一些东西正在导入它.我现在得到错误:
AGPBI: {"kind":"error","text":"Program type already present: android.support.v4.os.ResultReceiver$MyResultReceiver","sources":[{}],"tool":"D8"} java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: /Users/name/myproject/app/build/intermediates/transforms/dexBuilder/debug/532, /Users/name/myproject/app/build/intermediates/transforms/dexBuilder/debug/0.jar, /Users/name/myproject/app/build/intermediates/transforms/dexBuilder/debug/1.jar,
...
/Users/name/myproject/app/build/intermediates/transforms/dexBuilder/debug/530.jar, /Users/name/myproject/app/build/intermediates/transforms/dexBuilder/debug/531.jar Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes. Program type already present: android.support.v4.os.ResultReceiver$MyResultReceiver at sun.reflect.GeneratedConstructorAccessor377.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:593) at java.util.concurrent.ForkJoinTask.reportException(ForkJoinTask.java:677) ... at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55) at java.lang.Thread.run(Thread.java:745) Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes. Program type already present: android.support.v4.os.ResultReceiver$MyResultReceiver at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1431) at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) at …
refactoring ×10
android ×2
c# ×2
eclipse ×2
vim ×2
.net ×1
androidx ×1
branch ×1
c ×1
decimal ×1
java ×1
objective-c ×1
oop ×1
open-source ×1
php ×1
python ×1
rope ×1
svn ×1
vim-plugin ×1
xcode ×1