在public void writeObject(Object obj)中,如果obj.getClass().isArray(),则调用public <T> void writeArray(T[] array),问题是如何将obj转换成T[]传给writeArry呢?

解决方案 »

  1.   

    什么意思,是不是说不可能这么调?我直接写
    public void writeObject(Object obj)
    {
       if (obj.getClass().isArray())
          writeArray(obj);
    }
    的话,编译不过。
      

  2.   


    public void writeObject(Object[] obj){ //不了解具体的  但是你的这个参数是不是应该是数组啊? 改成数组  编译就没问题了
      if (obj.getClass().isArray()) 
          writeArray(obj); 


    public <T> void writeArray(T[] array){

    }
      

  3.   

    包含<T>的这个方法应该在类初始化的时候<T>就应该有类型值了,这样以来,可以添加的类型参数就确定了
    用Object型的参数作为形参,这应该是多态的体现
    T obj = (T)obj;加一个强制类型转换 应该就可以了