java——反射(快速理解)

本篇对java基础最后一部分反射进行总结,主要对反射的基本用法进行了讲解;接下来会继续更新mysql、jdbc、ssm等java开发知识;以下代码可以直接复制到idea中运行;

第一篇:

package java_fanshe;
//TODO 反射:
public class java_53 {
    public static void main(String[] args) {
        //java中的类主要分为三种:1.java核心类库中的类:String Object;2.JVM软件平台开发商;3.自己写的类:例如User。Person
        //类加载器也有三种:1.BootClassLoader:启动类加载器(加载类时,采用操作系统平台语言实现);2.PlatformClassLoader:平台类加载器;3.AppClassLoader:应用类加载器;
        //TODO 获取类的信息:
        Class<Student> studentClass = Student.class;
        //获取类的加载器对象:
        ClassLoader classLoader = studentClass.getClassLoader();
        System.out.println(classLoader);
        System.out.println(classLoader.getParent());
        System.out.println(classLoader.getParent().getParent());
    }
}
class Student{
    //此处写对应的属性以及方法,因为主要想演示反射的用法,此处就不写相应的属性和方法了;
}

第二篇:

package java_fanshe;

import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

//TODO 反射练习:
public class java_54 {
    public static void main(String[] args) throws Exception {
        //利用反射的方式获取类和对象以及对属性赋值;
        //获取这个类的信息:
        Class<User1> user1Class = User1.class;
        //获取构造方法:
        Constructor<User1> declaredConstructor = user1Class.getDeclaredConstructor();
        //实例化对象:
        User1 user1 = declaredConstructor.newInstance();
        //获取对象的属性:
        Field account = user1Class.getDeclaredField("account");//此处如果是getField那么获取的是public修饰的,其他的要用这个方法来获取;
        Field password = user1Class.getDeclaredField("password");
        //给属性赋值:
        account.set(user1, "zhangsan");
        password.set(user1, "zhangsan");
        //获取登陆方法:
        Method login = user1Class.getMethod("login");
        //调用方法:
        Object invoke = login.invoke(user1);
        System.out.println(invoke);
    }
}

class User1 {
    String account;
    String password;


    public boolean login() {
        if ("admin".equals(account) && "admin".equals(password)) {
            return true;
        } else {
            return false;
        }
    }
}

  • 12
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小菜日记^_^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值