我有一个我不确定可以回答的问题。
我在服务器上有一个php脚本,它根据MySQL数据库中的表内容自动生成一个java方法。该脚本创建一个.java文件,其中保存了此方法。
然后我下载此方法并将该方法复制并粘贴到我的主java类中。我认为这是不必要的一步。有没有办法在java类中包含该方法,而不是复制和粘贴。
我希望在java类中应该复制和粘贴方法的位置编写method.java文件的引用。
类似的东西:
public class ShowAlert {
public void showAlert(String toast) throws IOException {
System.out.println("alert = "+externalMethod());
}
include(externalMethod.java);
}
然后externalMethod.java有
public String externalMethod(){
return "hello world";
}
我不确定这是否可能,但如果是的话会很棒。
答案 0 :(得分:2)
Java中没有“包含文件”功能。我建议你生成这个:
public class GeneratedClass {
public static String externalMethod(){
return "hello world";
}
}
并将其称为:
GeneratedClass.externalMethod();
这样,手写文件和生成的文件可以完全分开。
答案 1 :(得分:1)
你应该考虑使用类似Java ScriptEngine
的东西(在JSR 223中描述)。可以找到示例here。
还有用于Java的LUA集成。
答案 2 :(得分:1)
理想情况下,您可以将生成的代码和手动编写的代码保存在单独的文件中。这样你就不必做你正在做的事。使用Aasmund的建议。这是正确的方法。您可能需要重新构建代码以允许此操作,但现在比以后更好。
我会请你加倍努力并使用接口。生成的代码应该实现一个接口,手动代码应该仅使用接口引用所有内容。您可以拥有一个返回实例的Factory。
这将允许您增加手动代码与生成代码的分离。我认为你会做的是在一定程度上使用DAO(数据访问对象)模式。如果将生成的代码分开并使用接口访问它,则DAO模式最有效。使用接口将允许您在运行时将DAO的实现更改为其他内容 - 例如运行单元测试。
答案 3 :(得分:0)
您可以使用像Smarty这样的PHP模板引擎来创建完整的Java类。您的主类将是您的模板,其中包含生成方法的占位符。