「java获得class」java获取数组长度

博主:adminadmin 2022-11-29 18:11:08 47

今天给各位分享java获得class的知识,其中也会对java获取数组长度进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java 如何获取基本类的class

public static Object getType(Class c) throws Exception{

    Field f = c.getDeclaredField("TYPE");

    Object obj = f.get(c);

    return obj;

}

public static void main(String[] args) throws Exception {

    System.out.println(getType(Integer.class));

}

java中如何得到一个数组的class的元素class

1、在Java中,所有的数组都有一个缺省的属性length,用于获取数组中元素的个数。

2、数组的复制:System.arraycopy()。浅拷贝

3、数组的排序:Arrays.sort()。

4、在已排序的数组中查找某个元素:Arrays.binarySearch()。

5、获取Class的三种方式:

(1)利用对象调用getClass()方法获取该对象的Class实例;

(2)使用Class类的静态方法forName(),用类的名字获取一个Class实例;

(3)运用.class的方式来获取Class实例,对于基本数据类型的封装类,还可以采用.TYPE来获取相对应的基本数据类型的Class实例。

java:关于getClass()方法

java.lang.Object中getClass()方法的用途:可以获取一个类的定义信息,然后使用反射去访问其全部信息(包括函数和字段)。还可以查找该类的ClassLoader,以便检查类文件所在位置等。

Class test=xxx.getClass(); 

//test带的方法有什么用 

//比如说可以返回类名

//知道该类中字段 

//知道该类中方法名 

//知道该类中参数名 

//知道该类中方法返回类型

好比说 :

Collection c=new ArrayList(); 

Class class=c.getClass(); 

List ll=c.getMethod("sublist",int.class,int.class).invoke(c,0,0);

从上面简单写了一段代码,会发现 Collection c仍然能调用sublist()方法,也就是利用了getClass()方法的反射机制了。

java 怎么获取t的class

1. public Type getGenericSuperclass()

用来返回表示当前Class 所表示的实体(类、接口、基本类型或 void)的直接超类的Type。如果这个直接超类是参数化类型的,则返回的Type对象必须明确反映在源代码中声明时使用的类型。比如:

import java.lang.reflect.ParameterizedType;

public class GT1 extends GT2Integer{

public static void main(String[] args) {

System.out.println(((ParameterizedType)new GT1().getClass().getGenericSuperclass()));

}

}

则输出结果即为:

GT2java.lang.Integer

如果此Class代表的是Object 类、接口、基本类型或 void,则返回 null。。如果此对象表示一个数组类,则返回表示 Object 类的 Class 对象。

2. public Type[] getGenericInterfaces()

与上面那个方法类似,只不过Java的类可以实现多个接口,所以返回的Type必须用数组来存储。

以上两个方法返回的都是Type对象或数组,在我们的这个话题中,Class都是代表的参数化类型,因此可以将Type对象Cast成ParameterizedType对象。而 ParameterizedType对象有一个方法, getActualTypeArguments()。

public Type[] getActualTypeArguments()

用来返回一个Type对象数组,这个数组代表着这个Type声明中实际使用的类型。接着使用上面的例子:

import java.lang.reflect.ParameterizedType;

public class GT1 extends GT2Integer{

public static void main(String[] args) {

System.out.println(((ParameterizedType)new GT1().getClass().getGenericSuperclass()).getActualTypeArguments()[0]);

}

}

java获得class的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java获取数组长度、java获得class的信息别忘了在本站进行查找喔。

The End

发布于:2022-11-29,除非注明,否则均为首码项目网原创文章,转载请注明出处。