Java注解及反射得到注解

Class类的方法

f

package com.part1;
/**
 *
 * @author pc
 *
 */
public class Student {
    public int sid;
    public char sex;
    private String sname;
    private String password;
    private String cardno;
    private double money;

    public Student() {
    }
    public Student(int sid, String sname, String password, String cardno,
            double money) {
        this.sid = sid;
        this.sname = sname;
        this.password = password;
        this.cardno = cardno;
        this.money = money;
    }
    public int getSid() {
        return sid;
    }
    public void setSid(int sid) {
        this.sid = sid;
    }
    public String getSname() {
        return sname;
    }
    public void setSname(String sname) {
        this.sname = sname;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getCardno() {
        return cardno;
    }
    public void setCardno(String cardno) {
        this.cardno = cardno;
    }
    public double getMoney() {
        return money;
    }
    public void setMoney(double money) {
        this.money = money;
    }

    public char getSex() {
        return sex;
    }
    public void setSex(char sex) {
        this.sex = sex;
    }
    @Override
    public String toString() {
        return "Student [cardno=" + cardno + ", money=" + money + ", password="
                + password + ", sex=" + sex + ", sid=" + sid + ", sname="
                + sname + "]";
    }

}

student实体类

package com.part1;

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

public class Test {
    public static void main(String[] args) throws ClassNotFoundException, SecurityException, NoSuchFieldException, NoSuchMethodException {
        //1.获取Class对象
        //1.1 第一种获取Class对象方法:对象名.getClass()
        Student stu=new Student(1, "李震东", "123", "3201121990", 47.5);
        Class<Student> cla1=(Class<Student>) stu.getClass();
        System.out.println(cla1);

        //1.2 第二种获取Class对象的方法:类名.class;
        Class<Student> cla2=Student.class;
        System.out.println(cla2);

        //1.3 第三种获取Class对象的方法:
        Class<Student> cla3=(Class<Student>) Class.forName("com.part1.Student");
        System.out.println(cla3);

        //2.获取属性
        //2.1先获取所有public属性
        System.out.println("--------2.1先获取所有public属性---------");
        Field[] fields1=cla1.getFields();
        for (Field field : fields1) {
            System.out.println(field);
        }
        //2.2 获取某个属性
        System.out.println("---------2.2获取某个属性---------");
        Field field2 =cla2.getField("sex");
        System.out.println(field2);

        //3.获取方法
        //3.1 获取所有的public方法
        System.out.println("------3.1 获取所有的public方法------");
        Method[] methods=cla1.getMethods();
        for (Method method : methods) {
            System.out.println(method);
        }

        //3.2 获取某个public方法
        System.out.println("---------3.2 获取某个public方法---------");
        Method method2=cla2.getMethod("setSname", String.class);
        System.out.println(method2);

    }

}

java得到对象属性和方法

package com.part1;

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

public class Test {
    public static void main(String[] args) throws ClassNotFoundException, SecurityException, NoSuchFieldException, NoSuchMethodException {
        //1.获取Class对象
        //1.1 第一种获取Class对象方法:对象名.getClass()
        Student stu=new Student(1, "李震东", "123", "3201121990", 47.5);
        Class<Student> cla1=(Class<Student>) stu.getClass();
        System.out.println(cla1);

        //1.2 第二种获取Class对象的方法:类名.class;
        Class<Student> cla2=Student.class;
        System.out.println(cla2);

        //1.3 第三种获取Class对象的方法:
        Class<Student> cla3=(Class<Student>) Class.forName("com.part1.Student");
        System.out.println(cla3);

        //2.获取属性
        //2.1先获取所有public属性
        System.out.println("--------2.1先获取所有public属性---------");
        Field[] fields1=cla1.getFields();
        for (Field field : fields1) {
            System.out.println(field);
        }
        //2.2 获取某个属性
        System.out.println("---------2.2获取某个属性---------");
        Field field2 =cla2.getField("sex");
        System.out.println(field2);

        //3.获取方法
        //3.1 获取所有的public方法
        System.out.println("------3.1 获取所有的public方法------");
        Method[] methods=cla1.getMethods();
        for (Method method : methods) {
            System.out.println(method);
        }

        //3.2 获取某个public方法
        System.out.println("---------3.2 获取某个public方法---------");
        Method method2=cla2.getMethod("setSname", String.class);
        System.out.println(method2);

    }

}

java动态调用赋值

时间: 2025-01-02 14:55:14

Java注解及反射得到注解的相关文章

Java基础加强-反射、注解

基础加强 一回顾泛型 二泛型的反射 三注解 基础加强 一.回顾泛型 泛型的基本概念: 以ArrayList<E>为例: ① ArrayList<E>中的E称为类型参数变量 ArrayList<Integer>中的Integer称为实际类型参数 ②整个ArrayList<E>称为泛型类型 整个ArrayList<Integer>称为参数化的类型(ParameterizedType) 定义一个泛型方法: : // <T>:泛型定义的声明,

Java中的反射和注解

反射 反射是将类抽象为一个Class对象.将类看成对象,分析它的构造方法,成员变量,方法以及内部类.  对类的分析,是将类抽象为Class对象:对构造方法的分析,是将构造方法抽象为Constructor类的对象:对成员变量的分析,是将变量抽象为Feild类的对象:对方法的分析,是将方法抽象为Method类的对象. 举个例子: 1 public class Student { 2 public String name;//定义学生姓名 3 private int age;//定义学生年龄 4 pr

Java课外拓展-----反射与注解

一:反射(Reflect) 1.1.概要 概要:动态获取类的信息,以及动态调用对象的方法的功能(运行时获得并使用类的信息的方法叫反射) 1.2.主要功能 主要功能: 在运行时判断任意一个对象所属的类: 在运行时构造任意一个类的对象: 在运行时判断任意一个类所具有的成员变量和方法: 在运行时调用任意一个对象的方法 1.3.Class     class的解释: class 定义类的关键字 class 每个类都具备的class静态属性 Class类 描述类的类型信息 1.4.反射常用方法 获得Cla

Java基础之反射、注解、代理

反射 笔者对反射的理解就是解剖class文件,来进行一系列操作. Class类 获取Class类实例的三种方式: 类名.class 对象.getClass() static Class forName(String className)根据类的名称获取类的Class对象(这里的className必须是类的全名) 一般使用第三种方式获取Class对象. 常用成员方法: Field getField(String name)获取类中的成员变量的对象 String getName() 获取类的全名:包

【java--反射】注解(反射解析注解+注解应用)

创建实体类 package cn.com.codingce.iocannotation; /** * @Author: Jiangjun * @Date: 2019/10/7 9:54 */ public class Person { private String name; private Integer age; private String sex; (get set方法省略) public Person(String name, Integer age, String sex) { th

Java高级之注解、反射

Java的注解.反射等机制的产生,让动态代理成为可能,一般通过全限定名+类名,找到类,可以invoke它的构造方法以及其他方法,可以获取它的参数(Field)名称和值. 注解一般用在代码的注释上.代码审查上(有没有按标准写,比如inspect).代码注入(hook,asbectj),需要考虑的是,在何时注入(编译期还运行期) 反射一般用在动态将json和Object互相转化,执行相关底层代码,比如设置某个类的Accessible为false,防止别人hook修改 例:阿里的FastJson解析:

Java反射学习总结终(使用反射和注解模拟JUnit单元测试框架)

本文是Java反射学习总结系列的最后一篇了,这里贴出之前文章的链接,有兴趣的可以打开看看. http://blog.csdn.net/a396901990/article/category/2302221 本文介绍了如何利用反射和注解去简单的模拟JUnit4单元测试框架,之所以选择JUnit4是因为4.0以后最大的改进就是使用了注解.需要注意的是这里并不是完全的模拟,只是简单实现了一下Runner类和JUnit注解相关的工作流程.所以本文的主要目的是介绍反射和注解的使用.废话不多说,直接进入正文

Java编程之反射中的注解详解

"注解"这个词,可谓是在Java编程中出镜率比较高,而且也是一个老生常谈的话题.我们之前在聊Spring相关的东西时,注解是无处不在,之前我们简单的聊过一些"注解"的相关内容,比如在Spring中是如何进行"注解"组合的.因为注解在Java编程中还是比较重要的,所以我们今天的博客就把注解的东西给系统的介绍一下,当然我们会依托于具体的实例. "注解"说白了就是存储数据的一种方式,如果注解单拎出来功能也就一般,如果将"注

JAVA反射与注解实例

1    JAVA反射机制 JAVA反射机制是在运行状况中,号码大全关于恣意一个类,关键词挖掘工具都能够晓得这个类的一切特点和办法:关于恣意一个目标,都能够调用它的恣意一个办法和特点:这种动态获取的信息以及动态调用目标的办法的功能称为java言语的反射机制.或许说,JAVA反射机制指的是咱们能够于运行时加载.探知.运用编译时间完全不知道的classes.换句话说,Java程序能够加载一个运行时才得知称号的class,得悉其完好结构(但不包括methods界说),并生成其目标实体.或对其field