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

时间:2011-06-17 05:33:49

标签: java android

嗯,这是一个标题。不过,它让我的观点得以实现。这是我的代码的要点,在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

当我尝试访问request.Username时,我遇到了问题。 Eclipse表示字段NetworkShared.LoginRequest.Username不可见。我很困惑,因为它一直是公开的。 Java不是我的主要语言,所以我可能会遗漏一些东西。有谁知道吗?

编辑:我可能会在Android上添加这个。 NetworkShared在它自己的JAR中,我已将它添加到构建路径中。除了访问request.Username。

之外没有其他错误

1 个答案:

答案 0 :(得分:1)

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

它应该工作。顶级类隐式static所以基本上NetworkShared.LoginRequest是识别LoginRequest类的正确方法。你这样做是正确的。

我的回答不是你的日食问题 - 这是你的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;
    }
}