如何使用Java注释插入一些样板代码与C宏一样?

时间:2014-10-29 12:49:04

标签: java annotations code-generation

我想使用Java注释来插入代码(方法调用等)。我们说我有这样的代码:

     ActionBar bar = getActionBar();
     assert bar != null;
     bar.setIcon(android.R.color.transparent);
     EventBus.getDefault().register(this);
     checkGPS();

此代码出现在我的每个Activity类中。而不是每次我想要这样的东西写它:@PrepareActivity将扩展代码。在C或C ++中,我可以简单地使用#define PrepareActivity \ ...。我可以用Java注释编写相同的内容吗?怎么做?感谢。

2 个答案:

答案 0 :(得分:4)

我从这篇this帖子的答案中收集到的内容,似乎没有标准的方法来做你想做的事情。有可能使用面向方面的编程,或者链接的帖子中的答案可以帮助吗?

Project Lombok做了类似的事情,他们解释了他们的技巧here

答案 1 :(得分:3)

注释并不意味着更改代码。有一些特殊的Java编译器(例如Projekt Lombok)可以修改这些规则。

但你不需要任何花哨的东西。只需让类实现一个包含getActionBar()checkGPS()的接口,然后就可以编写一个静态辅助方法:

public static void prepare( IThing thing ) {
     ActionBar bar = thing.getActionBar();
     assert bar != null;
     bar.setIcon(android.R.color.transparent);
     EventBus.getDefault().register(this);
     thing.checkGPS();
}