在java类中包含自动生成的方法

时间:2012-02-10 10:52:21

标签: java methods include external

我有一个我不确定可以回答的问题。

我在服务器上有一个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";
}

我不确定这是否可能,但如果是的话会很棒。

4 个答案:

答案 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类。您的主类将是您的模板,其中包含生成方法的占位符。