我面临一个问题。我有一个名为“ ReportingService”的类,它应该是单例并且正在扩展“ CommonService”。

package MyApp.Services.ReportingService;

public class ReportingService extends CommonService {

    private static ReportingService instance = null;

    public static ReportingService getInstance() {
        if (instance == null) {
            instance = new ReportingService();
        }
        return instance;

    }
}


并在我正在使用的其他班级中访问此班级

package MyApp.Services.WebReportingService;
@WebMethod(operationName = "registerUDP")
    public boolean registerUDP(
            @WebParam(name = "Friendly Name") String friendlyName,
            @WebParam(name = "Username") String username,
            @WebParam(name = "Password") String password,
            @WebParam(name = "Communication Protocol") CommunicationProtocol communicationProtocol,
            @WebParam(name = "IP Address") String ipAddress,
            @WebParam(name = "Port") int port) {

        Consumer client = new Consumer(friendlyName, username, password, communicationProtocol, ipAddress, port);

ReportingService rs = ReportingService.
        return true;

    }


在“ ReportingService rs = ReportingService”中。它没有向我显示ReportingService类的getInstance()方法。我还导入了正确的软件包。

注意:这两个类在不同的程序包中。

最佳答案

我认为您的包裹名称已损坏。您似乎在包的末尾有该类的名称-但是该类的名称仅在导入时出现。

因此,您将拥有:

package myApp.Services;

public class ReportService extends CommonService {/* code goes here */}


但随后您将包括:

import myApp.Services.ReportService;


WebReportingService也是如此。 package语句不应包含类名

编辑:如果您实际上要在包ReportService中使用myApp.Services.ReportService,则需要导入myApp.Services.ReportService.ReportService(或者myApp.Services.ReportService.*,但是不建议这样做,除非您需要该包中的许多类)

10-05 18:33