【问题标题】:Automated or shorcut for method access logging方法访问记录的自动化或快捷方式
【发布时间】:2014-01-08 10:28:46
【问题描述】:

这可能是一个相对愚蠢的问题,但我已经厌倦了必须对语句进行硬编码,例如:

private void doStuff(){
System.out.println(this.getClass().getName().toString()+ someText);{...};}

每次我想
所以我决定实现一个外部方法,只要我决定需要在输出流中写入一些东西,例如:。

public static void println(Object obj, String s) {
    System.out.println(obj.getClass().getName() + " > " + s);
}

那么问题来了,有没有办法在上面的方法中自动设置's'变量的值在写源码的时候总是默认为"initialized"(使用用于代码完成的 TAB,例如 Netbeans)?

非常感谢。

【问题讨论】:

    标签: java logging automation field shortcut


    【解决方案1】:

    使用varargs 作为第二个方法参数。这也将允许您传递多个调试语句。

    public class Logger {
    
        public static void main(String[] args) {
            String test = "Test";
            println(test);
            println(test, "This is a test");
        }
    
        public static void println(Object obj, String...vargs) {
            String defaultValue = "initialized";
            if(vargs.length == 0){
                System.out.println(obj.getClass().getName() + " > " + defaultValue);
            }else{
                for(String x: vargs){
                    System.out.println(obj.getClass().getName() + " > " + x);
                }
            }
        }
    }
    

    【讨论】:

      【解决方案2】:

      为什么不用默认值重载方法?

      public static void println(Object obj) {
          println(obj, "Initalized");
      }
      public static void println(Object obj, String s) {
          System.out.println(obj.getClass().getName() + " > " + s);
      }
      

      【讨论】:

        猜你喜欢
        • 2012-12-31
        • 1970-01-01
        • 2011-12-22
        • 2018-07-17
        • 1970-01-01
        • 1970-01-01
        • 2012-01-20
        • 2014-08-13
        • 1970-01-01
        相关资源
        最近更新 更多