Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.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
Java Optaplanner的反射问题_Java_Maven_Reflection_Optaplanner - Fatal编程技术网

Java Optaplanner的反射问题

Java Optaplanner的反射问题,java,maven,reflection,optaplanner,Java,Maven,Reflection,Optaplanner,我正在使用Optaplanner 6.2.0.CR4构建一个优化程序,并且在ReflectionPropertyAccessor类第63行:return readMethod.invoke(bean)和该类中的其他invoke方法中遇到了反射问题。在调试代码时,我通常能够将代码“分步”到它调用的任何类中,但Eclipse每次到达调用的任何方法的末尾时都会抛出一个错误。这导致Method.invoke(Object,Object)行不可用,DelegatingMethodAccesorImpl.i

我正在使用
Optaplanner 6.2.0.CR4
构建一个优化程序,并且在
ReflectionPropertyAccessor类第63行:return readMethod.invoke(bean)
和该类中的其他invoke方法中遇到了反射问题。在调试代码时,我通常能够将代码“分步”到它调用的任何类中,但Eclipse每次到达调用的任何方法的末尾时都会抛出一个错误。这导致
Method.invoke(Object,Object)行不可用
DelegatingMethodAccesorImpl.invoke(Object,Object[])行不可用
GeneratedMethodAccessor5.invoke(Object,Object[])行不可用
,然后出现一个屏幕,要求我更改附加的源代码


我正在运行
JRE 1.8
,我已经将Optaplanner的源代码作为它自己的Maven项目导入到Eclipse中,现在我的代码作为它自己单独的Java项目。一般来说,我对使用Maven和构建工具相当陌生。这个错误可能是由于不正确的依赖关系、类路径等造成的吗?有没有更好的方法来设置我的项目?我也正在将代码转移到Maven项目中。

在正常运行中,您会得到什么stacktrace

如果bean不是readMethod应用的类的实例,调用
readMethod.invoke(bean)
可能会失败。如果是这样的话,我很想看看代码,因为optaplanner可能能够通过一条有用的错误消息快速检测出故障


调试不起作用,因为
Method.invoke
可能是JDK中的本机实现(C而不是Java)。

很有趣,我在正常运行时没有得到throw声明。一切都在编译,规划实体每次移动尝试都返回null。“规划实体每次移动尝试都返回null”=>我无法理解这句话:)对不起,在我的代码运行时,这里有一行输出:
10:44:25.980[main]DEBUG o.o.c.I.c.DefaultConstructionHeuristicPhase-CH步骤(0),所用时间(145),分数(0hard/0soft)、选择的移动计数(100)、选择的移动(2014-04-11_B@
null
=>试点编号:0)。
为了帮助您理解,我的代码将轮班分配用作计划实体,其中日期字母是轮班日期类型。@后面的null值应该是pilotA ChangeMove的toString()是entity.toString()+“=>”+toValue.toString()。示例的entity.toString()也总是提到原始值。因此,拾取的移动将从导频零点移动到导频零点:0。因为它发生在初始化所有实体的CH期间,所以这似乎是完全正常的。