Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从包含第三方库使用的自定义注释的XML/XSD动态创建Java对象_Java_Xml_Jaxb_Annotations_Optaplanner - Fatal编程技术网

如何从包含第三方库使用的自定义注释的XML/XSD动态创建Java对象

如何从包含第三方库使用的自定义注释的XML/XSD动态创建Java对象,java,xml,jaxb,annotations,optaplanner,Java,Xml,Jaxb,Annotations,Optaplanner,我的目标是获取一个XML和/或XSD文件,动态创建一个包含Costure注释的Java对象,并将其加载到JVM中。然后,第三方库将查找包含该注释的对象,并对其执行某些功能。java对象的输出示例如下 import org.optaplanner.core.api.domain.entity.PlanningEntity; import org.optaplanner.core.api.domain.variable.PlanningVariable; @PlanningEntity publi

我的目标是获取一个XML和/或XSD文件,动态创建一个包含Costure注释的Java对象,并将其加载到JVM中。然后,第三方库将查找包含该注释的对象,并对其执行某些功能。java对象的输出示例如下

import org.optaplanner.core.api.domain.entity.PlanningEntity;
import org.optaplanner.core.api.domain.variable.PlanningVariable;

@PlanningEntity
public class NameAssignment extends ResourceAssignment{
    private String name;

   @PlanningVariable(valueRangeProviderRefs = { "PlannerCountRange" })    
   public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
我正在努力解决的部分是在XML解组之前、期间或之后生成注释字段
@PlanningEntity
@PlanningVariable(valueRangeProviderRefs={“PlannerCountRange”})

我一直在尝试使用、、(用于字节码操作)和XJC(仅用于编译类)来解决这个问题。我甚至想过完全抛弃Java并使用Groovy。 我开始觉得我把事情复杂化了,需要一些指导。这是一个“从头开始”的项目,所以我对如何实现它没有任何限制

任何帮助都将不胜感激

您可以向生成的代码中注入任何静态注释,只需提供绑定即可


有关详细信息和如何使用它的示例,请查找答案。

如果您希望在运行时构建OptaPlanner域对象,请查看OptaPlanner Workbench&Execution Server(也是开源的)。@GeoffreyDeSmet-感谢您的回复以及您多年来在OptaPlanner方面所做的所有出色工作。我确实希望在运行时构建OptaPlanner域对象。你的建议对我的产品的未来版本很有希望。目前,该产品将在没有web应用程序或web服务的富客户端上运行断开连接的操作。我正在等待本期的发布更新,该期将允许通过XML文件配置注释,将不带optaplanner注释的类用作规划实体类。因此基本上类似于JPA注释的orm.xml。它目前不在7.0路线图中(因为其他问题比它更重要)。@JustinA-您将如何使用Groovy来解决这个问题?