无法从另一个包访问静态内部类

时间:2016-07-20 04:50:18

标签: java nested

java版" 1.8.0_45"     Java(TM)SE运行时环境(版本1.8.0_45-b14)

我在这个包中有以下类。

该类用于使用gson从json字符串填充对象(工作正常)。所以这个课程的结构是这样的。

package news.com.sample.model

public class Status {
    private String status;
    private List<Results> results;

    static class Results {
        private String title;
        private List<Multimedia> multimedia;

        static class Multimedia {
            private String url;

            public String getUrl() {
                return url;
            }
        }

        public String getTitle() {
            return title;
        }

        public List<Multimedia> getMultimedia() {
            return multimedia;
        }
    }

    public String getStatus() {
        return status;
    }

    public List<Results> getResults() {
        return results;
    }
}

问题是,当我尝试从位于另一个包中的类访问getMultimedia时,我收到以下错误:

cannot access getMultimedia() in news.com.sample.model.Status.Results

我用来获取访问权限的课程

package news.com.sample.data;

import news.com.sample.model.Status;

public class ParseNewsFeed {
    public ParseNewsFeed() {
        Status status = new Status();
        status.getResults().get(0).getMultimedia().get(0).getUrl());
    }
}

但是,如果我在同一个包news.com.sample.model中创建一个新类,一切正常。

有没有办法解决这个问题,因为我需要在多个包中访问此Status类?

非常感谢任何建议,

1 个答案:

答案 0 :(得分:0)

在内部静态类之前添加“public”。这是一个访问控制问题