`
韩悠悠
  • 浏览: 827931 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

知识点

    博客分类:
  • java
 
阅读更多

Array的getLength()方法和 数组的length属性有什么不同的作用??或者说有什么区别?
感觉一样,不知道以后该如何选择

就像你所说的,一个是Array类的静态方法,一个是数组本身的属性,一般都用属性,自己本身有属性,何必借别人的方法呢?少加载一个类!


array.getClass().getComponentType()
public Class<?> getComponentType()返回表示数组组件类型的 Class。如果此类不表示数组类,则此方法返回 null
如果此类是数组,则返回表示此类组件类型的 Class

 

用反射创建一个数组
int length =Array.getLength(array);;
Object result = Array.newInstance(array.getClass().getComponentType(), length - 1);


System.arraycopy的用法
就象他的名字一样,copy   一个新的array
 System.arraycopy(array, 0, result, 0, index);
System.arraycopy(源array,源array开始索引,目的array,目的array开始索引)
public   static   native   void   arraycopy(Object src,  int src_position,  Object  dst, int dst_position, int length)
src;   -   源数组。  
srcpos   -   源数组的开始位置。  
dest   -   目标数组。  
destpos   -   目标数组的开始位置。  
length   -   要复制的数组元素个数。

 

array.clone()
创建 Array 的浅表副本。
Array 的浅表副本仅复制 Array 的元素(无论它们是引用类型还是值类型),但不复制这些引用所引用的对象。新 Array 中的引用与原始 Array 中的引用指向相同的对象。

 


isInstance
public boolean isInstance(Object obj)
判定指定的 Object 是否与此 Class 所表示的对象赋值兼容。此方法是 Java 语言 instanceof 运算符的动态等效方法。如果指定的 Object 参数非空,且能够在不引发 ClassCastException 的情况下被强制转换成该 Class 对象所表示的引用类型,则该方法返回 true;否则返回 false。
特别地,当该 Class 对象表示一个已声明的类时,若指定的 Object 参数是所表示类(或其任一子类)的一个实例,则此方法返回 true;否则返回 false。如果此 Class 对象表示一个数组类,且通过身份转换或扩展引用转换,指定的 Object 参数能转换为一个数组类的对象,则返回 true;否则返回 false。如果此 Class 对象表示一个接口,且指定 Object 参数的类或任一超类实现了此接口,则此方法返回 true;否则返回 false。如果此 Class 对象表示一个基本类型,则此方法返回 false。
Class lhsClass = lhs.getClass();
Class rhsClass = rhs.getClass();
if (lhsClass.isInstance(rhs)) {
 return true;
}

 

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics