Java 如何使用APT工具在课程材料中创建练习
我正在编写如何将插件写入系统集成工具的练习。我们将在练习后演示正确答案,但学生将收到一些方法为空的源代码,并在其中有一条注释,说明他们应该做什么 为了避免重复,如果学生的版本可以从可编译且正确的答案源文件生成,那就太好了。我突然想到,Java注释处理工具(APT,而不是debian APT)可以用来生成练习,如果输入法带有注释,APT可以将方法吐出为空 使用APT可以做到这一点吗?如果是的话,人们会怎么做Java 如何使用APT工具在课程材料中创建练习,java,annotations,apt,Java,Annotations,Apt,我正在编写如何将插件写入系统集成工具的练习。我们将在练习后演示正确答案,但学生将收到一些方法为空的源代码,并在其中有一条注释,说明他们应该做什么 为了避免重复,如果学生的版本可以从可编译且正确的答案源文件生成,那就太好了。我突然想到,Java注释处理工具(APT,而不是debian APT)可以用来生成练习,如果输入法带有注释,APT可以将方法吐出为空 使用APT可以做到这一点吗?如果是的话,人们会怎么做 有没有更好/更简单的方法来避免重复,从我忽略的单一来源生成练习和正确答案?我不确定APT能
有没有更好/更简单的方法来避免重复,从我忽略的单一来源生成练习和正确答案?我不确定APT能否做到这一点,因为您需要访问源代码才能说出结果 您最好使用一个简单的程序来识别以注释为前缀的方法,并用学生的占位符替换方法的内容(打开和关闭大括号) 另一种可能更简单的机制是使用自定义注释来标记可替换区域,然后只处理该文件以获得结果。例如
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
}
}
然后,只需编写一段简单的代码即可删除注释和注释之间的内容。APT并不是一种理想的方法,尽管它是可以做到的。一般来说,APT只允许您生成新的人工制品,并提供一个。您只能通过访问AST树(也一样)。是的,魔法评论可能更好。我认为awk可以处理由与regexp匹配的线包围的区域。我得调查一下。