如何使用APT工具在课程材料中创建练习

时间:2009-08-27 11:52:05

标签: java annotations apt

我正在创建如何编写插件到系统集成工具的练习。我们将在练习后为演示实施正确的答案,但学生将收到一些方法为空的来源,并且只是在其中有一个TODO评论,描述他们应该做什么。

为了避免重复,如果学生的版本可以从可编辑和正确的答案源文件生成,那将是很好的。让我感到震惊的是Java注释处理工具(APT,而不是debian APT)可能用于生成练习,如果输入方法带有注释,APT会将方法吐出为空。

这可以使用APT吗?如果是这样,怎么会这样做?

是否有更好/更简单的方法可以避免重复,从单一来源生成练习和正确答案,我忽略了?

2 个答案:

答案 0 :(得分:2)

尽管可以做到,APT并没有让我成为理想的做法。一般来说,APT只能让你生成新的人工制品并提供limited amount of structural information。您只能通过compiler-specific hacks访问AST树(如Project Lombok所示)。

答案 1 :(得分:1)

我不确定APT是否可以执行此操作,因为您需要访问源代码以吐出结果。

你最好使用一个简单的程序来识别以注释为前缀的方法,并用学生的占位符替换方法的内容,打开和关闭大括号。

另一种可能更简单的机制是使用自定义注释来标记可替换区域,然后只处理此文件以获得结果。 E.g。

public class SomeClass {
   public SomeClass() {
      // real code here
   }

   public void someMethod() {
      //EXERCISE:START
      System.out("put some real compilable code here, "+
                 "that students will have to implement themselves");
      //EXERCISE:END
   }
}

然后,您只需执行一些简单的代码即可删除注释和它们之间的内容。