【问题标题】:attempting to assign weaker access privileges; was public error for isCancelled试图分配较弱的访问权限; isCancelled 是公共错误
【发布时间】:2014-05-14 05:46:35
【问题描述】:

所以我在 SwingWorker 中有这个 isCancelled 的代码

boolean isCancelled() return true; 

它给了我错误

试图分配较弱的访问权限;是公共错误

我不知道如何解决它。谁能帮我?谢谢你

【问题讨论】:

  • 让它public boolean isCancelled() 而不仅仅是boolean isCancelled()
  • @KarthikT 我已经试过了,它给了我一个错误,它不能覆盖 SwingWorker 中的最终方法

标签: java boolean swingworker


【解决方案1】:

首先,您需要在方法主体周围使用大括号。

其次,您当前声明它的方式使用 package 访问,但 isCancelled 方法是公共的,因此您必须用另一个公共方法覆盖它。

第三,无论如何方法都是final,所以你不能一开始就覆盖它。目前尚不清楚您要达到什么目标,但这不是要走的路。

【讨论】:

    【解决方案2】:

    你可以像之前发帖说的那样试试这个:

    @Override
    public boolean isCancelled(){
     return true;
    }
    

    但您可能还需要考虑是否真的需要一个方法,而您可能只需要一个变量:

    public boolean isCancelled = true;
    

    【讨论】:

      【解决方案3】:

      因为如果 override 方法您在超类或扩展(包 -> 保护 -> 公共)中使用相同的访问权限。

      如果是超类的例子:

      boolean isCancelled(){}; // package local default access
      
      protected boolean isCancelled(){};
      
      public boolean isCancelled(){};
      

      在你的子类中使用(相对):

      @Override
      boolean isCancelled(){}; //or add  protected or public
      
      @Override
      protected boolean isCancelled(){};//or change public
      
      @Override
      public boolean isCancelled(){};
      

      【讨论】:

        猜你喜欢
        • 2012-07-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-07-22
        • 1970-01-01
        • 1970-01-01
        • 2012-07-24
        相关资源
        最近更新 更多