从定义它的类中进行访问时,如何消除“访问是私有的”警告?

时间:2018-06-08 22:05:09

标签: java intellij-idea clone

我有一个带有受保护属性的类,只能在此类中访问。因此,编译器正确地说访问可以是私有的。

但是,我还有一个clone()方法,它为该属性创建一个新值,以便克隆具有该属性的单独实例。但是当对变量的访问是私有的时,从克隆方法访问它的行(在同一个文件中,请注意)抱怨该属性是私有的。

我需要更改此代码,以便在尝试为该属性设置新值时不会收到警告?

public abstract class Foo<T extends Foo<T>> implements Cloneable {

  private Gizmo bar = new Gizmo();

  @SuppressWarnings( "unchecked" )
  public T clone() {
    try {
      T copy = (T) super.clone();
      copy.bar = new Gizmo();
      return copy;
    }
    catch ( CloneNotSupportedException e ) {
      // will never happen
      return (T) this;
    }

}

当我们讨论这个主题时,是否有更好的方法可以摆脱未经检查的强制转换异常,而不仅仅是在我知道它将永远成功时抑制它?

0 个答案:

没有答案
相关问题