无法访问公共类内公共静态类的公共成员(全部在单独的 jar 中)



好吧,这是一个很有意思的标题。不过,这让我明白了我的意思。以下是我的代码要点,在罐子里:

public class NetworkShared {
    public static class LoginRequest {
        public String Username;
        //...

然后,为了访问它,我正在做这样的事情:

NetworkShared.LoginRequest request = new NetworkShared.LoginRequest();
request.Username = "example"; //this is the problem line

这是我尝试访问请求的时候。我的用户名有问题。Eclipse表示字段NetworkShared.LoginRequest.Username不可见。我很困惑,因为它一直都是公开的。Java不是我的主要语言,所以我可能遗漏了一些东西。有人知道吗?

编辑:我可能会在安卓系统上添加这个。NetworkShared在它自己的JAR中,我已经将它添加到构建路径中。除了访问请求之外,没有其他错误。用户名。

结论:这似乎是引用JAR的Eclipse刷新问题。

它应该起作用。顶级类隐含地为static,因此基本上NetworkShared.LoginRequest是标识LoginRequest类的正确方法。你做这件事的方式是正确的。

我的答案不是eclipse问题,而是Java问题,所以至少你可以摆脱与Java相关的担忧。

除了你的eclipse可能有一个bug(也不是第一个)之外,你能在你的eclipse中编译以下代码吗?您可能已经将原始代码精简为实际工作的代码。

NetworkShared.java

public class NetworkShared {
    public static class LoginRequest {
        public String Username;
    }
}

Test.java

public class Test {
    public static void main(String[] args) {
        NetworkShared.LoginRequest o = new NetworkShared.LoginRequest();
        o.Username = null;
    }
}

相关内容

最新更新