我正在制作一个使用Drools planner的应用程序。
@ValueRangeFromSolutionProperty 应该引用另一个类(在本例中为NQueens)中的属性。根据 @ValueRangeFromSolutionProperty 的JavaDocs 说明:
但我注意到一个不一致之处:标注器使用了来自NQueens的属性rowList。但是,rowList(与RowList相反)是一个私有变量(请参见下面的片段)。如果它应该通过内省推断属性(从其getter和setter方法),那么它不应该拼写为RowList,如getRowList()中所示吗?
问题:Java如何从getter方法中推断(内省)属性名称(大小写等)?
或者@ValueRangeFromSolutionProperty是否直接访问私有变量?
背景细节:来自Queen.java的类,表示棋盘上的皇后:
@ValueRangeFromSolutionProperty 应该引用另一个类(在本例中为NQueens)中的属性。根据 @ValueRangeFromSolutionProperty 的JavaDocs 说明:
propertyName
The property name of which exists a getter on the Solution that returns a Collection.
但我注意到一个不一致之处:标注器使用了来自NQueens的属性rowList。但是,rowList(与RowList相反)是一个私有变量(请参见下面的片段)。如果它应该通过内省推断属性(从其getter和setter方法),那么它不应该拼写为RowList,如getRowList()中所示吗?
问题: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;
...
getURLRedirect()
提取到属性URLRedirect
,getIRReciever()
提取到IRReciever
(用于红外接收器),getFName()
(和getfName()
)提取到fName
?这样做是为了遵守命名约定“oneTwoThree”吗? - Jesvin Jose