【发布时间】:2012-01-23 08:59:10
【问题描述】:
我正在制作一个使用 Drools 规划器的应用程序。
@ValueRangeFromSolutionProperty 应该引用另一个类的属性(在这种情况下为NQueens)。来自JavaDocs for @ValueRangeFromSolutionProperty:
propertyName
The property name of which exists a getter on the Solution that returns a Collection.
但我注意到一个不一致:注释器使用来自NQueens 的属性rowList。但是rowList(相对于RowList)是一个私有变量(参见下面的sn-ps)。如果它应该通过自省推断属性(从它的 getter 和 setter 方法),不应该像 getRowList() 那样拼写为 RowList 吗?
问题:Java 如何从 getter 方法推断(内省)属性名称(大小写和全部)?
还是@ValueRangeFromSolutionProperty直接访问私有变量?
背景详情:
来自Queen.java,一个代表棋盘上皇后的类:
public class Queen extends AbstractPersistable {
....
@ValueRangeFromSolutionProperty(propertyName = "rowList")
public Row getRow() {
return row;
....
来自NQueens.java,@ValueRangeFromSolutionProperty 从中获取其属性的类:
public class NQueens extends AbstractPersistable implements Solution<SimpleScore> {
...
private List<Column> columnList;
private List<Row> rowList;
....
public List<Row> getRowList() {
return rowList;
...
【问题讨论】:
标签: java javabeans drools-planner