注释如何强制所有Java类都有一个属性
我希望所有Java类都有一个logger
变量:
private static final Logger logger = Logger.getLogger(Foo.class);
但我必须在所有课堂上打这一行
有没有办法实现自动化?你能帮我吗
你可以在下面搜索框中键入要查询的问题!
我希望所有Java类都有一个logger
变量:
private static final Logger logger = Logger.getLogger(Foo.class);
但我必须在所有课堂上打这一行
有没有办法实现自动化?你能帮我吗
# 1 楼答案
如果您使用的是Eclipse,请为Java类创建一个新的代码模板。这将在每个新类中添加一个记录器引用,包括适当的导入。如果你不是在谈论log4j,那么调整导入
然后
# 2 楼答案
我猜你真正想要的不是遗产。事实上,继承是合并记录器IMHO的一种相当糟糕的方式,因为记录器并不是类的真正功能,而是应用程序的cross-cutting concern
您需要的是一个经过调整的新类模板。如果您正在使用eclipse,可以在Java->;下的首选项中找到它;代码样式->;编码模板然后切换到对话框的右侧,并选择Code->;新Java文件
在intellij idea中,您可以在文件->;设置->;文件模板->;课程
对this question的公认答案演示了在模板中合并log4j日志记录,以及导入语句
# 3 楼答案
使用继承
继承可能会对你有所帮助
# 4 楼答案
嗯, 您可以做的是创建一个抽象父类,它拥有这个logger变量,并且您的每个类都继承自这个类。 但是在java中,只允许一个继承,您可能会遇到麻烦,因为继承被父类阻止
第二个问题是:记录器将始终使用抽象父类的类进行初始化。如果你不介意的话