Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 尝试使用现有的记录器对象,但获取<;预期标识符>;错误?_Java_Logging - Fatal编程技术网

Java 尝试使用现有的记录器对象,但获取<;预期标识符>;错误?

Java 尝试使用现有的记录器对象,但获取<;预期标识符>;错误?,java,logging,Java,Logging,我的项目中使用了Java日志API。他们在类a的构造函数中使用类似记录器的工具,例如: public A(Context context) { log_ = (Logger) context.getAttribute(LOGGER); } 我必须为一个没有构造函数的类实现它。。。我试着把那个类的对象做成如下: Class B { B b; } 并尝试使用以下记录器: log_ = (Logger) b.getAttribute(LOGGER); 但是我一直在这一行中得到错误?

我的项目中使用了Java日志API。他们在类a的构造函数中使用类似记录器的工具,例如:

public A(Context context) { 
  log_ = (Logger) context.getAttribute(LOGGER);
}
我必须为一个没有构造函数的类实现它。。。我试着把那个类的对象做成如下:

Class B { 
  B b; 
}
并尝试使用以下记录器:

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

但是我一直在这一行中得到错误
?这里的错是什么?提前感谢。

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

  • 在构造函数中(每个类都至少有一个构造函数,如果您不显式地编写构造函数,编译器将添加一个不带参数的默认构造函数)
  • 直接在定义时间
  • 懒洋洋地使用
    getLogger()之类的方法
  • (有效)Java代码中说明的所有三个选项:

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

    请正确格式化您的代码如果您告诉我们您遇到了什么错误(编译器警告、堆栈跟踪),我们可能会帮助您。“他们”正在从上下文获取记录器,请确保您使用相同的方法。确保正确声明字段。确保声明了所有必需的字段。出于对Java的热爱,请向我们展示更具体的代码和stacktrace:)您不能将任意语句(如赋值语句)放在类主体内部、方法或构造函数外部。在类
    B
    中添加一个构造函数,并将作业放在其中。我无法理解
    a
    B
    之间的关系。你能解释一下吗?你是否建议编写一个构造函数public B(Context Context){log_=(Logger)Context.getAttribute(Logger);},但它仍然不起作用?或者我理解错了。。。好心帮忙