Запутался в именовании свойств JavaBean, в отношении геттеров и сеттеров

Я делаю приложение, которое использует планировщик Drools.

Предполагается, что @ValueRangeFromSolutionProperty будет ссылаться на свойство из другого класса (NQueens в данном случае). Из JavaDocs для @ValueRangeFromSolutionProperty:

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?

Или @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 {
...
private List columnList;
private List rowList;
....
public List getRowList() {
    return rowList;
...

5
задан Jesvin Jose 23 January 2012 в 09:53
поделиться