gpt4 book ai didi

方法变量和包名称之间的 Java 命名冲突

转载 作者:行者123 更新时间:2023-11-30 09:58:41 32 4
gpt4 key购买 nike

我有一些 Axis 框架从 WSDL 文件生成的类。在其中一个类中,有一个生成的方法


public com.initechsystems.www.initech7.initechbo.Organization createOrganization(com.initechsystems.www.initech7.initechbo.Organization org) throws java.rmi.RemoteException {

//(... snip ...)
_call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
//(... snip ...)
}

方法参数中的变量名 org 与包 org.apache.axis.client 产生了命名冲突,因为编译器无法区分包和变量。我意识到我可以通过更改方法中的变量名称 org 轻松解决此问题,但我想避免这种情况,因为它会减慢工作流程。除了修改 WSDL 文件或生成的类之外,还有其他解决方法吗?

编译器错误:


D:\projects\java\initechdir\target\generated-sources\axistools\wsdl2java\com\initechsystems\www\initech7\initechws\OrganizationManagement\OrganizationManagementSoapStub.java:[1678,29] cannot find symbol
symbol : variable apache
location: class com.initechsystems.www.initech7.initechbo.Organization

最佳答案

有没有办法使生成的代码具有导入语句?这将使您不必拥有类的完全限定名称。

所以,如果你可以添加:

import org.apache.axis.client.Call;

到文件然后你的方法调用将只是:

_call.setProperty(Call.SEND_TYPE_ATTR, Boolean.FALSE);

不过我不确定 Axis 是否有相应的选项。如果不是,我会说重命名变量(也许是“组织”)将是最好的事情。我建议避免手动编辑自动生成的文件,因为这会使重新生成它们变得更加困难。

关于方法变量和包名称之间的 Java 命名冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/654308/

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