反射之获取类,方法(0)

1 反射之获取类      获取类有三种方法

public interface Person {

public void sayHi();

}


 

public class Student  implements Person{

private String id;

private String name;

private int age;

public int sex=1;

//省去构造方法和get set方法

}

Class c1 = Student.class;

Class c2=Class.forName("com.study.reflect.Student");

Class c3=new Student().getClass();

System.out.println(c1==c2);

System.out.println(c1==c3);

System.out.println("类名"+c1.getName());    //获取类名

Package package1=c1.getPackage();    //获取包名

System.out.println("包名"+package1.getName());

System.out.println("接口名"+c1.getInterfaces()[0].getName());  //接口名com.study.reflect.Person

System.out.println("父类"+c1.getSuperclass());      //父类class java.lang.Object

2.反射之获取属性  

Class c1 = Student.class;

//获取所有的属性(public的)

Field field=c1.getField("sex");

System.out.println("公有的(public)"+field.getName()+"---"+field.getType());

Field[] fields = c1.getFields();

for(Field field1:fields){

System.out.println("所有公有的(public)"+field1.getName()+"_"+field1.getType());

}

//获取所有的属性(private类型和public  )

Field fieldprivate =c1.getDeclaredField("name");   //getDeclaredField可以获取public和private的

Field[] fieldprivate4 = c1.getDeclaredFields();

System.out.println("私有或者公有的(public or private)"+fieldprivate.getName()+"---++++++"+fieldprivate.getType());

3.获取方法  构造方法

Class c1 = Student.class;

Constructor com1 = c1.getConstructor(null);

System.out.println(com1.getParameterTypes().length);  //输出 0

Constructor com=c1.getConstructor(String.class,String.class,int.class);  //调用具体参数     类型的构造方法

//输出  java.lang.String java.lang.String int   输出的是参数类型

for(Class a:com.getParameterTypes()){

System.out.println(a.getName());

}

//输出  都是java.lang.class   输入原始数据类型

for(Type a:com.getGenericParameterTypes()){

System.out.println(a.getClass().getName());

}

4.获取类的相关方法

Class c1 = Student.class;

//获取方法

//1.指定某个方法

Method method = c1.getMethod("setAge", int.class);

System.out.println(method.getName()+"==========");

//2.获取所有的方法

Method[] methods=c1.getMethods();

for(Method method2:methods){

System.out.println(method2.getName());

}

时间: 2024-12-30 11:59:34

反射之获取类,方法(0)的相关文章

反射之获取类,方法等

1 反射之获取类      获取类有三种方法 public interface Person { public void sayHi(); }   public class Student  implements Person{ private String id; private String name; private int age; public int sex=1; //省去构造方法和get set方法 } Class c1 = Student.class; Class c2=Clas

反射机制--获取类的方法

一.反射机制获取一个类的方法 1.使用class属性 类名.class 2.使用Class类的forName("类名")方法, Class.forName("类名") 3.new一个类然后调getClass()方法 new 类名().getClass() 实例: public void text() throws ClassNotFoundException{ //第一种方式 Class cla = Integer.class; //第二种方式 Class cla2

反射之获取类,属性,方法,接口,父类等

获取类有三种方法 实体类和接口 public interface Person { public void sayHi(); } public class Student  implements Person{ private String id; private String name; private int age; public int sex=1; /*get和set方法省略*/ } Class c1 = Student.class; Class c2=Class.forName("c

C#使用反射机制获取类信息[转]

http://www.cnblogs.com/zhoufoxcn/archive/2006/10/31/2515873.html 1.用反射动态创建类实例,并调用其公有成员函数. //新建一个类库项目,增加一个GetSum方法. using System; namespace ClassLibrary1 { public class Class1 { public Class1() { } public int GetSum(int x, int y) { return x + y; } } }

反射_获取类的信息

通过C#中的type类获取类中的字段.属性.方法等相关信息. /// <summary> /// 通过type类获取类中的公有字段,属性和方法 /// </summary> /// class newClass { public string Id01; public string Id02; public string Id03; public string Name01 { get; set; } public string Name02 { get; set; } publi

JAVA 反射 动态获取类,并调用方法

Class<?> clazz = Class.forName("cn.walle.sysGrid.MyMethod"); Object show = (Object) clazz.newInstance(); getMethod("show",show,null);

通过反射,获取类的属性

http://stackoverflow.com/questions/3723934/using-propertyinfo-to-find-out-the-property-type https://www.codewars.com/kata/56c22c5ae8b139416c00175d/train/csharp using StriveObjects; using System.Reflection; using System; public class Strive { public s

利用反射机制,获取类的字段、方法、并实现简单调用

这篇文章是为之后要介绍Android的ICO框架做预备的,所以,如果想最近学习Android的ICO框架的同学,可以稍微看一下. 首先,简单介绍一下Java里面的反射. JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制. 不知道这样的一段解释,你能否看懂.如果更简单的说,反射就是能够根据你给出类名实例化出一个实实在在的对象.所以,对象的实例

Java 使用反射获取类、方法、属性上的注释

有的时候我们想使用反射获取某个类的注释.方法上的注释.属性上的注释. 下面是一个简单的例子.里面包括了上面提到的三个点. package com.mine.practice.reflectfield; import java.lang.annotation.Annotation; import java.lang.reflect.Field; import java.lang.reflect.Method; import javax.xml.bind.annotation.XmlAccessTy