java 反射 二进制,Java反射机制

Java中提供了Class类,可以通过Class类获取类的定义信息,包括包名、类名、类上的注释(Annotation)、类的修饰符、父类、继承的接口、构造方法、成员变量和成员方法。这些信息分别使用java.lang.annotation.Annotation、 java.lang.reflect.Constructor、java.lang.reflect.Field、java.lang.reflect.Method、java.lang.reflect.Modifier来表示。可以动态调用方法和属性。下面的例子展示了基本用法。

package ch5;

import static java.lang.System.out;

import java.lang.annotation.Annotation;

import java.lang.reflect.Constructor;

import java.lang.reflect.Field;

import java.lang.reflect.Method;

import java.lang.reflect.Modifier;

public class ClassInfo {

public static void main(String args[]){

Class c=String.class;

// 1、得到所有方法

Method[] methods = c.getMethods();

// 2、得到某个方法

try{

// 第一个参数是方法的名字,后面的参数是参数的类型

Method find = c.getMethod("indexOf", int.class);

// 动态调用,第一个参数是对象,后面的参数是方法的实参(采用了变长参数)

System.out.println(find.invoke("hello,welcome!",'c'));

}catch(Exception e){

e.printStackTrace();

}

// 3、得到类的名字

out.println("类的名字为:"+c.getName());

// 4、得到包名,通过Package对象处理

System.out.println("包名为:"+c.getPackage().getName());

// 5、得到修饰符,通过Modifier处理

int modifier = c.getModifiers();

if(Modifier.isPublic(modifier)){

System.out.println("类是公有的!");

}

if(Modifier.isPrivate(modifier)){

System.out.println("类是私有的!");

}

if(Modifier.isFinal(modifier)){

System.out.println("类是最终类!");

}

// 6、得到父类

System.out.prin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值