Java 类中定义的方法不可访问
我遵循这个例子: 要创建Java Spring属性的嵌套列表,经过模糊处理和简化后,如下所示: conf.property: a、 b.c=项目1、项目2、项目3 AppProperties.java位于包x.y.z.properties中:Java 类中定义的方法不可访问,java,oop,public,access-specifier,Java,Oop,Public,Access Specifier,我遵循这个例子: 要创建Java Spring属性的嵌套列表,经过模糊处理和简化后,如下所示: conf.property: a、 b.c=项目1、项目2、项目3 AppProperties.java位于包x.y.z.properties中: @EnableConfigurationProperties @ConfigurationProperties(prefix = "a") @Configuration public class AppProperties { private St
@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;
}
}
}
位于程序包x.y.z.validation中的FieldValidator.java:
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);
}
}
为了简单起见,我没有编写所有的getter/setter,它们都在那里,并且是公共的
我仍然得到:
a.b.c.properties.bproperty中的java:getC在
不可访问的类或接口
我试着在谷歌上搜索类似的问题,但没有一个答案对我有意义。。
这是怎么回事?我已经根据我阅读的关于不同软件包的答案之一公开了所有内容。将您的BProperty类声明为公共:
public static class BProperties {
在您的代码中,它具有包私有可见性,因此IsItemValidator类无法看到它,因为它位于另一个包中。**public**static class BProperties。谢谢!我一定错过了,因为该类是IDEA自动生成的,具有默认可见性。。