Intellij 将 getClass() 替换为 ClassName.class
Intellij replace getClass() with ClassName.class
在 IntellJ Idea 项目中有没有一种方法可以用当前 class 名称 + .class?
替换对 getClass() 的所有调用
所以例如替换:
class ClassName{
public method(){
Logger.logDebug(getClass(), "Some information")
}
}
和
class ClassName{
public method(){
Logger.logDebug(ClassName.class, "Some information")
}
}
试试这个结构搜索模板:
$This$.getClass()
编辑变量 -> This -> Text/regexp:this,最小计数:0,最大计数:1
替换模板
$Clazz$.class
编辑变量 -> Clazz -> 脚本文本:
import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.psi.PsiClass;
PsiTreeUtil.getParentOfType(__context__, PsiClass.class).getQualifiedName();
更新:
JetBrains 支持:
新的结构搜索和替换 (SSR) 对话框目前不支持此功能。可以通过回到旧的 UI 来做到这一点,方法如下:
- 调用帮助 |查找操作... (Ctrl/Cmd+Shift+A)
- 键入 Registry 并调用 Registry... 操作
- 删除 ssr.use.new.search.dialog 键的复选标记并关闭对话框
现在当您调用 SSR 时,您将返回到旧对话框并且可以再次使用替换变量。计划在 2019.2 版本中恢复新 SSR 对话框的替换变量,但不能保证。
在 IntellJ Idea 项目中有没有一种方法可以用当前 class 名称 + .class?
替换对 getClass() 的所有调用所以例如替换:
class ClassName{
public method(){
Logger.logDebug(getClass(), "Some information")
}
}
和
class ClassName{
public method(){
Logger.logDebug(ClassName.class, "Some information")
}
}
试试这个结构搜索模板:
$This$.getClass()
编辑变量 -> This -> Text/regexp:this,最小计数:0,最大计数:1
替换模板
$Clazz$.class
编辑变量 -> Clazz -> 脚本文本:
import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.psi.PsiClass;
PsiTreeUtil.getParentOfType(__context__, PsiClass.class).getQualifiedName();
更新: JetBrains 支持: 新的结构搜索和替换 (SSR) 对话框目前不支持此功能。可以通过回到旧的 UI 来做到这一点,方法如下:
- 调用帮助 |查找操作... (Ctrl/Cmd+Shift+A)
- 键入 Registry 并调用 Registry... 操作
- 删除 ssr.use.new.search.dialog 键的复选标记并关闭对话框
现在当您调用 SSR 时,您将返回到旧对话框并且可以再次使用替换变量。计划在 2019.2 版本中恢复新 SSR 对话框的替换变量,但不能保证。