无法访问 com.sap.cloud.sdk 中的私有 类。s4hana.datamodel.odata.namespaces

Unable to access private classes in com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces

我正在尝试按照 SDK 教程中的步骤 20 创建一个实体。但是当我使用命令 mvn clean install

构建项目时

我添加了以下可用的导入 https://help.sap.com/http.svc/rc/05fbf11f8ccc403dba4f90150e8f4ccf/1.0/en-US/index.html?com/sap/cloud/sdk/s4hana/datamodel/odata/namespaces/package-summary.html

import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.businesspartner.AddressEmailAddress;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.businesspartner.BusinessPartnerAddress;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.businesspartner.BusinessPartnerRole;

我看到以下错误。

[ERROR] /C:/Users/sanke/workspace/Businesspartners_cloudfoundry/application/src/main/java/com/yash/cf/Businesspartners_cloudfoundry/BusinessPartnerServlet.java:[81,17] toEmailAddress(java.util.List) has private access in com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.businesspartner.BusinessPartnerAddress.BusinessPartnerAddressBuilder [ERROR] /C:/Users/sanke/workspace/Businesspartners_cloudfoundry/application/src/main/java/com/yash/cf/Businesspartners_cloudfoundry/BusinessPartnerServlet.java:[93,17] toBusinessPartnerAddress(java.util.List) has private access in com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.businesspartner.BusinessPartner.BusinessPartnerBuilder [ERROR] /C:/Users/sanke/workspace/Businesspartners_cloudfoundry/application/src/main/java/com/yash/cf/Businesspartners_cloudfoundry/BusinessPartnerServlet.java:[94,17] toBusinessPartnerRole(java.util.List) has private access in com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.businesspartner.BusinessPartner.BusinessPartnerBuilder

博客仍然引用1.5.0版本。您遇到的错误表明您使用的是更新版本 >= 1.6.0,其中导航属性的签名略有更改。例如,方法已改写为 emailAddress(AddressEmailAddress... value),而不是 toEmailAddress(List<AddressEmailAddress> value)。关于此事还请咨询release notes for 1.6.0

因此,请将您的代码更改为以下内容:

final BusinessPartnerAddress businessPartnerAddress = BusinessPartnerAddress.builder()
    .country(country)
    .cityName(city)
    .emailAddress(emailAddress)
    .build();

教程也更新了。