代码之家  ›  专栏  ›  技术社区  ›  Dustin Getz sunsations

Java中的力警告

  •  9
  • Dustin Getz sunsations  · 技术社区  · 14 年前

    我想要一个手动抛出编译时警告的机制。我用它来标记未完成的代码,这样以后我就不可能忘记它了。@已弃用,但在调用方站点(而不是在创建站点)发出警告。我在用Eclipse。有点像C中的警告。

    7 回复  |  直到 11 年前
        1
  •  6
  •   Dustin Getz sunsations    14 年前

    为什么不在源代码中添加一个标志,比如 //TODO: 还是什么?然后搜索所有发生的 TODO 在文件中?你甚至可以有一些特别的旗帜 FINISHME 或者什么的。

    如果您的项目中有来自团队的数百个待办事项,则可以通过字符串进行筛选,例如,任务窗格右上角菜单中的首字母缩写。

        2
  •  2
  •   Jonathon Faust    14 年前

    创建打印警告的注释。

        3
  •  2
  •   Sankumarsingh    11 年前

    在我看来,这比使用不推荐使用的注释要好得多。

    @SuppressWarnings("XXX")

    几乎可以在任何地方注释,只要XXX不是有效的警告,您就会从Eclipse中得到关于这一点的警告。

        4
  •  1
  •   Goibniu    14 年前

    如果调用未完成的方法(例如),则可以尝试引发异常

    throw new UnsupportedOperationException()
    

    (或者您可以创建自己的异常)。显然,这只会在运行时有所帮助(除非您在代码中为其进行搜索或执行其他操作-但TODO将是更好的解决方案)

    如果您使用Eclipse,您可以用//todo标记未完成的代码,它将显示在您的任务列表中(如果您配置了它,则显示在右边的槽中)。很明显,如果你有很多todo标签,事情会变得非常嘈杂。

        5
  •  1
  •   Jay    14 年前

    我一直这样做,只是把“***Left off here**”或诸如此类的词放在这里。由于这不是有效的Java或C++或几乎任何其他语言语法,编译器会给它提供错误消息。

    当然,这是一个错误,而不是一个警告。如果您想以其他方式成功地编译,我想一件简单的事情就是放置一条您知道会生成编译器警告的语句,其中的注释为“完成这个”或其他什么。

        6
  •  1
  •   Andi    11 年前

    当我想警告用户调用方法时,我(mis)使用build-in@deprecated注释,该注释在调用方生成警告。实际上,它的意思有点不同,但我不在乎。

    /** [Additional information...]
     * It is marked as deprecated to warn callers. */
    @Deprecated public void methodForWhichIWantToCreateAWarning();
    
        7
  •  0
  •   Mitch Dempsey    14 年前

    我不确定Java中是否有类似的东西。

    但有一点可以帮助您:

    像这样编译下面的代码:

    javac -Xprint verbose.java

    public class verbose{
    
        public @interface SomeMessage {
            String somevalue();
        }
    
    
        @SomeMessage(
            somevalue = "WHOOOOHOOOO000000000000000"
        )
    
        public static void main(){
            System.out.println("Hello");
        }   
    }