метод, определенный в классе недоступен - PullRequest
0 голосов
/ 21 января 2020

Я следовал этому примеру: https://www.boraji.com/spring-boot-configurationproperties-example Чтобы создать вложенный список Java свойств Spring, которые, запутанные и упрощенные, выглядят так:

conf .property :

a.b.c=item1,item2,item3

AppProperties. java (находится в пакете xyzproperties):

@EnableConfigurationProperties
@ConfigurationProperties(prefix = "a")
@Configuration
public class AppProperties {
    private String version;
    private String email;
    public BProperties b = new BProperties();



    static class BProperties {
        public List<String> c;

        public List getC() {
            return c;
        }

        public void setC(List c) {
            this.c= c;
        }
    }
}

FieldValidator. java (находится в пакете xyzvalidation):

public class IsItemValidator implements ConstraintValidator<IsItem, Object> {

    @Autowired
    public AppProperties appProperties;
    //... bunch of other stuff...

    private boolean hasValidItem(final Object item) {


        return appProperties.getB().getC().contains(item);
    }
}

Для простоты я не написал все методы получения / установки, они есть и публикуются c все.

I все еще получить:

java: получить C () в ab c .properties. Свойства определены в недоступном классе или интерфейсе

Я пытался гуглил и смотрел на похожие вопросы, но ни один из ответов не имеет смысла для меня .. Что здесь происходит? Я уже все опубликовал c согласно одному из ответов, которые я прочитал относительно различных пакетов ..

1 Ответ

1 голос
/ 21 января 2020

Объявите ваш класс BProperties как publi c:

public static class BProperties {

В вашем коде он имеет видимость для пакета, поэтому класс IsItemValidator не может его увидеть, поскольку он находится в другом пакете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...