尝试使用现有的Logger对象,但获取<identifier expected =“”>错误?</identifier>

时间:2013-03-28 10:29:20

标签: java logging

Java log API在我的项目中使用。他们在类A的构造函数中使用logger,例如:

public A(Context context) { 
  log_ = (Logger) context.getAttribute(LOGGER);
}

我必须为没有构造函数的类实现它...我试图在类中创建该类的对象:

Class B { 
  B b; 
}

并尝试使用logger:

log_ = (Logger) b.getAttribute(LOGGER);

但是我一直在这一行收到错误<identifier expected>?这里有什么问题?提前谢谢。

1 个答案:

答案 0 :(得分:1)

您不能将任意语句直接放在类定义中(实际上它是定义)。您可以初始化您的会员字段

  1. 在构造函数中(每个类至少有一个构造函数,如果你没有明确地编写一个,编译器将添加一个不带参数的默认构造函数
  2. 直接定义时间
  3. 懒惰地使用像getLogger()
  4. 这样的方法

    (有效)Java代码中说明的所有三个选项:

    class B {
    
      Context ctx = Context.getDefault();
      Logger log = ctx.getLogger();
    
      B(Context ctx) {
        log = ctx.getLogger();
      }
    
      Logger logger() {
        return ctx.getLogger();
      }
    }