环境:Java类编程实验室简介。
如果使用了禁止类的任何导入,是否可以强制Java抛出异常?例如,我有一个实验室,我特别希望他们计算一些几何,我不希望他们只使用内置库。
当前解决方案:Grep所有禁用关键字的java文件。事实上这是有效的。我希望他们的代码在编译时失败,这样他们就不会上班。
我的理论是他们必须让他们的主要课程延伸到一个项目"我提供的课程。项目类阻止访问被禁止的库 - 如果可能的话。
答案 0 :(得分:1)
Java内置了防止加载类的机制,即SecurityManager
。它不会使代码无法编译,但它将无法以异常运行。
根据您的需求创建SecurityManager
并致电学生的项目。如果他们使用禁用库,则会抛出异常。
参考:https://docs.oracle.com/javase/tutorial/essential/environment/security.html
答案 1 :(得分:0)
对于学生来说,这可能是一个小硬核,但您可以通过使用maven或gradle编译项目来轻松解决问题。只需添加一个ant-task或其他任何内容来grep一些文本并使构建失败。
但它迫使你使用maven或gradle进行编译。也许你不想要那个。