通用类,使用clone调用泛型类

时间:2017-10-14 14:06:17

标签: java invoke cloneable getmethod

我需要使用实现cloneable创建一个泛型类,为了实现这一点,我需要做一个类的克隆方法和另一个获取此方法的方法。 老师在房间里传递了它,但没有工作,并给出了方法错误。我该怎么办?

  public class Deposito <X> implements Cloneable {
       public Object clone () {
           Deposito ret=null;

           try {
               ret = new Deposito (this);
           }
           catch (Exception erro) { 
           } 
        return ret;
      }

      private X meuCloneDeX (X x) {
          X ret = null;

          try {
              Class<?> classe = x.getClass();
              Class<?>[] tipoDoParametroFormal = null; 
              Method metodo = classe.getMethod ("clone", tipoDoParametroFormal);
              Object[] parametroReal = null;// pq clone tem 0 parametros
              ret = ((X)metodo.invoke (x, parametroReal));
          }
          catch (NoSuchMethodException erro)
          {}
          catch (InvocationTargetException erro)
          {}
          catch (IllegalAccessException erro)
          {}

          return ret;
       }
}

错误 - 找不到符号:

方法metodo = classe.getMethod(“clone”,tipoDoParametroFormal);

1 个答案:

答案 0 :(得分:0)

也许你应该使用Class#getDeclaredMethod。因为你刚刚宣布&#34;你的克隆方法......如果只是忽略此方法的第二个参数,它会更好。