【问题标题】:How can I refactor the element type of Generics in eclipse, any shortcuts?如何在 Eclipse 中重构泛型的元素类型,有什么快捷方式吗?
【发布时间】:2012-11-20 03:06:05
【问题描述】:

我在重构泛型的元素类型时遇到了麻烦,请查看下图,

元素的类型是“String”,现在想重构为“Integer”,eclipse中该怎么做。我不想改变“titleName”的类型!!。我已经检查过,如果我选择类型名称并右键单击,上下文菜单中没有“重命名”:-(

我用“帮助/替换”重构了类型作为解决方法,但是,我认为这不是一个好方法,它可能会导致拼写错误。

好吧,我知道我的问题有点奇怪,但我想很多人可能会遇到。比如"Map<String,Integer> map = HashMap<String, Integer>()" to "Map<Integer,User> map = HashMap<Integer, User>()"怎么改?

【问题讨论】:

  • replace all 会导致拼写错误,如果我将“private String titleName”声明为 InnerIterator 的字段,因为我不想将“titleName”更改为 Integer。如果我有很多本地字符串变量,它可能会变得更糟。

标签: java android eclipse refactoring


【解决方案1】:
CTRL + F 
FIND: <String>
REPLACE WITH: <Integer>
Replace All

【讨论】:

  • 嗨,罗伯特。我不认为“全部替换”是一种补救措施,在这种情况下,Iterable的元素类型是String,所以next()方法应该返回String,如果我只是将它全部替换为Integer,“public String next()”赢了'不会被改变。
  • 我的错,只是做同样的事情没有''
  • 是的,它以前在一定程度上解决了这个问题,但是如果我声明了很多我不想替换为“整数”的“字符串”变量,这个提议可能会弄乱代码。这让我发疯,因为手动替换会导致拼写错误:-(
  • 好吧,我知道我的问题有点奇怪,但我想很多人可能会遇到。例如,如何将“Map map = HashMap()”改为“Map map = HashMap()”?
  • 嗨,我更新了我的帖子,还在吗?任何建议,提前谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-07
  • 2011-06-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多