gpt4 book ai didi

java - 类中定义的方法无法访问

转载 作者:行者123 更新时间:2023-12-02 09:05:42 25 4
gpt4 key购买 nike

我正在遵循这个例子: https://www.boraji.com/spring-boot-configurationproperties-example要创建 Java Spring 属性的嵌套列表,经过混淆和简化,如下所示:

conf.property:

a.b.c=item1,item2,item3

AppProperties.java(位于包 x.y.z.properties 中):

@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(位于包 x.y.z.validation 中):

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,它们就在那里,并且是公共(public)的。

我仍然得到:

java: getC() in a.b.c.properties.BProperties is defined in an inaccessible class or interface

我尝试用谷歌搜索并查看类似的问题,但没有一个答案对我来说有意义。这里发生了什么?我已经根据我读到的有关不同软件包的答案之一公开了所有内容..

最佳答案

将您的 BProperties 类声明为公共(public):

public static class BProperties {

在您的代码中,它具有包私有(private)可见性,因此 IsItemValidator 类看不到它,因为它位于另一个包中。

关于java - 类中定义的方法无法访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59831632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com