泛型类,用克隆调用泛型类

Posted

技术标签:

【中文标题】泛型类,用克隆调用泛型类【英文标题】:Generic class, calling generic class with clone 【发布时间】:2018-03-26 12:09:53 【问题描述】:

我需要用实现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;
       

错误 - 找不到符号:

Method metodo = classe.getMethod("clone", tipoDoParametroFormal);

【问题讨论】:

传入的是什么对象?它实际上有一个公共的clone 方法吗? 【参考方案1】:

也许你应该使用Class#getDeclaredMethod。因为你刚刚“声明”了你的克隆方法......如果它为空时忽略这个方法的第二个参数会更好。

【讨论】:

以上是关于泛型类,用克隆调用泛型类的主要内容,如果未能解决你的问题,请参考以下文章

反射获取泛型类泛型方法

Java泛型:泛型类泛型接口和泛型方法

Java泛型:泛型类泛型接口和泛型方法

从非泛型类调用抽象泛型类中定义的方法的最佳方法是啥

Java泛型:泛型类泛型接口和泛型方法

Java泛型知识点:泛型类泛型接口和泛型方法