java 反射简单总结

本文主要介绍了Java反射机制的基本概念和使用方法,包括如何通过反射创建对象、获取类信息、访问和修改成员变量以及调用方法。反射是Java动态类型的重要特性,它允许我们在运行时检查类的结构和调用其成员,为程序提供了更大的灵活性。
摘要由CSDN通过智能技术生成
package zr.test;

import java.io.InputStream;
import java.lang.annotation.Annotation;
import java.lang.reflect.AnnotatedType;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Type;
import java.lang.reflect.TypeVariable;
import java.net.URL;
import java.security.ProtectionDomain;

import study.core.Reflex;
import study.sqlite3.main.User;
import study.sqlite3.main.User.A;
import zr.annotation.Run;

/**
 * java 反射 
 * @author Administrator
 *
 */
public class Javareflex {
	public static void main(String[] args) throws Exception {
		//----理解class类
		
		@SuppressWarnings("deprecation")
		User user = new User();
		user.setUserCode("hello");
		System.out.println(user.getClass()==User.class);
		Class<? extends User> clazz1 = user.getClass();
		
		
		
		//转型
//		asSubclass 向上转型
		Reflex reflex = clazz1.asSubclass(Reflex.class).newInstance();
		reflex=clazz1.newInstance();
		Object properties = reflex.properties();
//		Class<? extends List> asSubclass = clazz1.asSubclass(List.class);
//		--判断父类
//		cast 向下转型
		Object o=user;
		User cast = user.getClass().cast(o);//
		
		
		//desiredAssertionStatus 断言状态
		boolean desiredAssertionStatus = clazz1.desiredAssertionStatus();
		
		
		//通过字符串获取字节码对象
		//forName
		Class<?> user1 = Class.forName(user.getClass().getName());
		System.out.println(user1);
		
		
//		getAnnotatedInterfaces  注解
		boolean annotationPresent = clazz1.isAnnotationPresent(Run.class);
		AnnotatedType[] annotatedInterfaces = clazz1.getAnnotatedInterfaces();
		AnnotatedType annotatedSuperclass = clazz1.getAnnotatedSuperclass();
		Run annotation = clazz1.getAnnotation(Run.class);
		Annotation[] annotations = clazz1.getAnnotations();
		Run[] annotationsByType = clazz1.getAnnotationsByType(Run.class);
		Run declare
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值