在编写实验代码时,我发现一次注释掉整个代码块非常有用。但是,我无法在Java中找到合理的方法来执行此操作,因为我经常最终将嵌套的块注释掉。
在C或C#中,使用#if 0
或#if false
我似乎无法在Java中找到任何这样的等价物 - 任何帮助都会受到赞赏。谢谢!
答案 0 :(得分:5)
我假设你想要将嵌套代码注释掉以进行调试或测试,对吧?因为在生产代码中留下大量注释掉的代码通常被认为是非常糟糕的风格。
嵌套注释本身不是java的一个特性。所以,你可以做什么?以下是一些不同的选择:
Slash Slash注释嵌套我能想到的最好的方法是使用一个带有热键的编辑器来斜杠,注释掉整个代码块,因为//可以嵌套。 Eclipse和Netbeans都有这种支持,尽管它在IDE之间的工作方式上存在细微差别,只要它决定切换注释和嵌套它们。通常嵌套//注释只要选择不相同就可以完成。
第三方预处理器也就是说,J2ME在eclipse中使用预处理器,但我认为这不会对桌面java有所帮助。如果你搜索它们,似乎有other preprocessors为eclipse编写或兼容。但是,这肯定会妨碍可移植性,因为这不是标准的java功能。
修改评论我经常为快速嵌套评论需要做的另一件事(更多的是在css中不做//评论而不是java)是在最后两个之间添加一个空格结束内部注释*/
的字符,以便java不会在内部注释的结尾处结束外部注释。恢复原始评论并不太困难(但略微手动)。解析器通常会根据它的模式匹配方式忽略嵌套的/*
。例如/ * code / *嵌套注释* /更多代码* /`
使用版本控制您还可以轻松地使用大多数版本控制系统来保存代码的副本以及要删除的代码。然后使用版本控制restore / diff / merge来恢复删除的代码。通常这种解决方案被认为是最好的风格。特别是如果这个注释掉的代码需要长时间保留。
if(false)如果您希望批量生成的代码无法同时运行并且在单个函数中,您可以通过在其周围添加if语句来轻松禁用它,条件将是永远不会是真实的,例如if (false) { ... }
显然,这绝不会通过任何类型的lint类型代码检查工具,但它的快速简便;-)
答案 1 :(得分:2)
评论并不意味着留下死代码 - 它们用于描述实时代码。
对于极少数情况需要这样做,使用IDE来评论你想要的行(eclipse中的CTRL + /
)就足够了。
如果这是一种常见做法,请重新考虑您的流程和代码。并随意删除代码并将其提交给SCM。如果你需要,它不会迷路。
答案 2 :(得分:2)
你可以去if(false){}。 Java并没有真正按照C或C ++的方式进行编译,但Java编译器应该足够聪明以跳过整个部分(一旦确定此if语句永远不会评估为true)。这仅用于注释函数内的代码。
或者,如果您有一个像eclipse或notepad ++这样的好IDE,您可以使用内置快捷键来使用//注释掉多行。
Eclipse = ctrl + /(压制取消注释) N ++ = ctrl + k(shift + crtl + k取消注释)
答案 3 :(得分:0)
仅适用于Eclipser:
Ctrl + /
(每行以//
开头)Ctrl + /
,您将全部提交 ps:
按Ctrl + /
一次将提交行,再次按将取消提交。