2013-03-28 45 views
0

Java日志API用于我的项目。它们在A类的构造函数使用记录等,例如:尝试使用现有的Logger对象,但获得<identifier expected>错误?

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

我要实现它,其亘古不变的有一个构造函数的类......我试图让这个类的一个对象就像在:

Class B { 
    B b; 
} 

,并试图使用日志如:

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

但我不断收到错误<identifier expected>在这条线?这里有什么错?提前致谢。

+0

请格式化你的代码 – Raffaele 2013-03-28 10:31:38

+1

如果你告诉我们你得到了什么错误(编译器警告,堆栈跟踪),我们可能会帮助你。 – 2013-03-28 10:32:39

+0

'他们'正在从上下文中获取记录器,请确保以相同的方式执行此操作。确保你正确地声明你的域。确保您声明了所有必填字段。对于Java的爱向我们展示更具体的代码和堆栈跟踪:) – Lenymm 2013-03-28 10:39:38

回答

1

您不能在类定义中直接插入任意语句(实际上它是一个定义)。您可以初始化成员字段

  1. 在构造函数(每个类都有至少一个构造函数,如果你不明确地定义一个代码,编译器将添加一个默认构造函数它没有参数)
  2. 直接在定义时
  3. 懒懒地喜欢getLogger()

的(有效)的Java代码说明这三个选项的方法:

class B { 

    Context ctx = Context.getDefault(); 
    Logger log = ctx.getLogger(); 

    B(Context ctx) { 
    log = ctx.getLogger(); 
    } 

    Logger logger() { 
    return ctx.getLogger(); 
    } 
} 
+0

您是否建议编写一个构造函数public B(Context context){log_ =(Logger)context.getAttribute(LOGGER); }但它仍然不起作用?或者我理解错了...请帮助 – 2013-03-28 11:37:38

+0

这意味着什么不工作? – Raffaele 2013-03-28 11:50:14

相关问题