Java 生成器在生成器中具有私人访问权限
这个Java代码片段有什么问题Java 生成器在生成器中具有私人访问权限,java,builder,Java,Builder,这个Java代码片段有什么问题 ClientRegistration registration = new ClientRegistration.Builder(properties.getClientId()) .authorizationUri(properties.getAuthorizationUri()) .build(); 我收到以下错误消息,但无法理解: error: Builder(String) has private access in Bu
ClientRegistration registration = new ClientRegistration.Builder(properties.getClientId())
.authorizationUri(properties.getAuthorizationUri())
.build();
我收到以下错误消息,但无法理解:
error: Builder(String) has private access in Builder
ClientRegistration registration = new ClientRegistration.Builder(properties.getClientId())
^
据我所知,此错误通常由以下代码导致:
ClientRegistration registration = new ClientRegistration().Builder(properties.getClientId())
上面的代码就是这个问题的正确解决方案。但现在我的问题正好相反
有什么想法吗?无法使用
new
关键字创建ClientRegistration.Builder
,因为它的构造函数是私有的
你应该是:
ClientRegistration.Builder builder = ClientRegistration.withRegistrationId(registrationIdAsString)
这将为您创建一个新的ClientRegistration.Builder
之后,您可以在ClientRegistration.Builder
中设置字段,并调用.build()
获取ClientRegistration
。就像这样:
ClientRegistration registration = builder.authorizationUri(properties.getAuthorizationUri())
.build();
查看构建器的JavaDocs,了解可以设置哪些属性:
或者在一行中,就像你做的那样:
ClientRegistration registration = ClientRegistration.withRegistrationId(properties.getClientId())
.authorizationUri(properties.getAuthorizationUri())
.build();
猜测在该内部构建器类中接受字符串的构造函数是私有的?然后:提供一个请。对不起,这不是猜测-这是一个教程中的代码。似乎是一个预发布代码BTW:thanx的提示。生成器(字符串)并不总是私有的,错误消息指出了错误的方向。再次:thanx-我现在明白我的问题不是模式(这就是为什么我认为提供的代码足够了),而是实现问题。