当前位置: 首页 > 知识库问答 >
问题:

Drools声称那个方法超载了

孔安阳
2023-03-14

我有一个类MyClass,它有一个返回类型为Long的getId()方法。我在用optaplanner。我从资源文件创建了一个解算器工厂,并构建了一个解算器。

SolverFactory solverFactory = SolverFactory.createFromXmlResource("/path/to/config");
Solver solve = solverFactory.buildSolver();

执行buildSolver()时,我看到了警告

Getter overloading detected in class mypackage.MyClass : getId (class java.lang.Object) vs getId (class java.lang.Long) 

我想知道optaplanner在哪里找到返回类型Object的方法getId()。它在源代码中无处可寻!

编辑

正如评论中指出的那样,这个警告还可能意味着drools找到了两种方法:getId(Object)和getId(Long)。这一点甚至更加可疑,因为我没有定义接受任何参数的getId方法。

使现代化

我调查过这门课https://github.com/kiegroup/drools/blob/master/drools-core/src/main/java/org/drools/core/util/asm/ClassFieldInspector.java在我的机器上使用maven依赖项的版本中

<dependency>
  <groupId>org.optaplanner</groupId>
  <artifactId>optaplanner-benchmark</artifactId>
  <version>6.4.0.Final</version>
</dependency>

当ClassFieldCheck tor被实例化为class UnderCheck等于“mypack. MyClass”时,则方法列表

final List<Method> methods = Arrays.asList( clazz.getMethods() );

确实包含两个名为getId()的方法:

  1. “public java.lang.Long mypackage.myClass.getId()”
  2. “public java.lang.Object mypackage.myClass.getId()”

共有1个答案

汲雅珺
2023-03-14

问题是由MyClass实现了一个声明方法getId的通用接口这一事实引起的。我已将此作为单独的问题发布

实现通用java接口增加了额外的方法

因为它的一般性质与optaplanner无关。

 类似资料:
  • 问题内容: 我是Node.js和MongoDB的新手,正在尝试组装自己的博客应用程序。我在尝试通过“博客”模型查询具有特定用户名的用户时遇到问题。当我尝试运行时: 我收到一个错误: 我知道全局变量不好,但是我一直在努力使其正常运行。Mongo文档声称返回了一个游标,该游标可以具有调用的方法。我不知道为什么它不起作用。 这是我的架构/模型创建: 这是/ login和/ readblog请求 最终结果

  • 我是java和drools的新手,我必须构建一个java RESTful Web Services/规则引擎。我们已经有运行drools版本5.2的Genesys规则创作(GRAT)和Genesys规则引擎(GRE)(版本8.1.2)。我们需要获取GRAT包的源代码并在我们的开发环境的“lite规则引擎”中使用它们。对于我的POC,我安装了drools 5.2并创建了一个项目,它可以像我想要的那样

  • 我正在学习,并试图理解是什么使它比其他框架和库提供的解决方案更“快”和更特别。 我意识到以下几点: 以及React如何运行一个diff以采取最少的步骤来确定“更改”并相应地响应/重新呈现,而不是在其他框架/库中进行传统的“脏检查”操作。 以声明方式编程,而不是通过“可观察”模式强制实现。 因此,从概念上讲,上面的陈述对我来说都很好,但是,当我考虑现实生活中的用例和实践时,我无法想象其中的好处: >

  • 6.1. 方法声明 在函数声明时,在其名字之前放上一个变量,即是一个方法。这个附加的参数会将该函数附加到这种类型上,即相当于为这种类型定义了一个独占的方法。 下面来写我们第一个方法的例子,这个例子在package geometry下: gopl.io/ch6/geometry package geometry import "math" type Point struct{ X, Y floa

  • Java代码: 我的问题是:类中的是否重载了超类中同名的? 我的朋友说他们不是因为他们不在一个班。

  • 超声波模块组件用于检测与前方障碍物的距离,检测范围为3~300cm。 净重量:12.4g 体积:24×48×14mm 参数 测量范围:3~300cm 测量精度:±5% 工作电压:DC 5V 抗跌落能力:1.5m 工作温度:-10℃~55℃ 工作湿度:<95% 特点 神经元独占