Droolsplannerを使用したアプリケーションを作成しています。
は@ValueRangeFromSolutionProperty
、別のクラス(NQueens
この場合)のプロパティを参照することになっています。@ValueRangeFromSolutionPropertyのJavaDocsから:
propertyName
The property name of which exists a getter on the Solution that returns a Collection.
しかし、私は矛盾に気づきました:アノテーターはrowList
からのプロパティを使用しますNQueens
。ただし、rowList
(とは対照的にRowList
)はプライベート変数です(以下のスニペットを参照)。イントロスペクション(getterメソッドとsetterメソッドから)によってプロパティを推測することになっている場合は、次のRowList
ように綴る必要がありgetRowList()
ますか?
質問: Javaは、getterメソッドからプロパティ名(caseおよびall)をどのように推測(イントロスペクト)しますか?
または@ValueRangeFromSolutionProperty
、プライベート変数に直接アクセスしますか?
背景の詳細:From Queen.java
、チェス盤の女王を表すクラス:
public class Queen extends AbstractPersistable {
....
@ValueRangeFromSolutionProperty(propertyName = "rowList")
public Row getRow() {
return row;
....
From 、からプロパティを取得する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;
...