java - 我没有降低界面的可见性,但出现了 "Cannot reduce visibility"编译错误

标签 java interface visibility implements

我正在开发一个用于培训的员工管理系统,并且我制作了一些界面,以便我可以从那里开始工作。
当我正在研究它时,我的一种方法给了我一个编译器错误,说我无法降低可见性。但我从来没有这样做过。
这是给我带来这个问题的接口(interface)和方法。
接口(interface):

interface setter{
    boolean setPerformance(int id,int score);
    void setAttendance();
    boolean setNewEmployee(int id,String passWord,String name);
    boolean setRank(int id,int rank);
}

具有方法的类:

class localSetter implements setter{

    localGetter get;
    browser browse;

    boolean setPerformance(int id,int score) {
        if(get.getRank(browse.returnBrowserId()) >= 1 || Integer.toString(score).length() > 2) {
            return false;
        } else {
            String oldValue = localGetter.storage.get(id);
            String newValue = oldValue.replaceFirst("Pf:\\d\\d", "Pf:"+score);
            localGetter.storage.put(id,newValue);
            return true;
        }
    }

    void setAttendance() {
        String oldValue = localGetter.storage.get(browse.returnBrowserId());
        int start = oldValue.indexOf("At:");
        String newValue = oldValue.substring(0,start + 3) + browse.currentDate() + oldValue.substring(start + 3);
        localGetter.storage.put(browse.returnBrowserId(),newValue);
    }

    boolean setNewEmployee(int id,String passWord,String name) {
        if(get.getRank(browse.returnBrowserId()) > 2) {
            String value = "Ps:"  + passWord + "Nm:" + name + "Pf:0";
            localGetter.storage.put(id, value);
            return true;
        } else {
            return false;
        }
    }
    boolean setRank(int id, int rank) {
        if(localGetter.storage.isEmpty() || get.getRank(browse.returnBrowserId()) >= 3) {
            if(localGetter.storage.containsKey(id) == false) {
                return false;
            } else {
                String oldValue = localGetter.storage.get(id);
                String newValue = oldValue.replaceAll("Rk:\\d+","Rk:" + rank);
                localGetter.storage.put(id, newValue);
                return true;
            }
        } else {
            return false;
        }
    }

如您所见,接口(interface)和实现的方法都没有可见性修饰符,但它一直告诉我添加“public”修饰符。
请有人帮助我。谢谢。

最佳答案

接口(interface)中的方法隐式地公共(public)。在类中,如果不指定访问修饰符,则该方法只能由同一包中的类访问,从而降低了该方法的可见性。

TL;DR - 实现接口(interface)方法的方法,必须是public

关于java - 我没有降低界面的可见性,但出现了 "Cannot reduce visibility"编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55097466/

相关文章:

java - 对于 FTP 和 HTTP 可用空间大小

如果使用 4 参数版本但不使用 2 参数版本,java.net.Socket 构造函数会抛出 Socket 异常

ios - 声明选择器 presentviewcontroller

c# - 是什么让表单无法被隐藏?

java - 位于 Fragment 中的 WebView 中没有出现 ProgressBar,如何在 Android WebView 中显示 ProgressBar?

java - 如何用数组列表中的多个匹配项替换字符串?

java - 如何在 Jenkins Groovy 脚本中使用逗号分隔符分割字符串?

javascript - 如何修改 AngularJS 中 $http 的接口(interface)?

c# - 是否可以约束实现接口(interface)的类的构造函数?

javascript - 如果 JavaScript 中另一个 div 中的值为空,如何让 div 不显示?