文档章节

利用反射获取类的方法及属性

学而时习之
 学而时习之
发布于 2015/02/28 14:11
字数 428
阅读 27
收藏 0

1、创建一个类

package com.ljb.app.model;// 下面用到的路径

import java.io.Serializable;

/**
 * 序列化实体类
 * @author  LJB
 * @version  2015年2月10日
 */
public class Student implements Serializable{
 private String name;
 private int age;
 private String gender;
 private transient String password;
 
 public Student(String name, int age, String gender , String password) {
  super();
  this.name = name;
  this.age = age;
  this.gender = gender;
  this.password = password;
 }

 public String getName() {
  return name;
 }

 public void setName(String name) {
  this.name = name;
 }

 public int getAge() {
  return age;
 }

 public void setAge(int age) {
  this.age = age;
 }

 public String getGender() {
  return gender;
 }

 public void setGender(String gender) {
  this.gender = gender;
 }

 public String getPassword() {
  return password;
 }

 public void setPassword(String password) {
  this.password = password;
 }
}

说明:可以不用序列化

2、创建通过类的全路径获取类的方法及属性的类

package com.ljb.app.my_first_maven;

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

import javax.swing.JOptionPane;

/**
 * 利用反射获取类信息
 * @author  LJB
 * @version  2015年2月26日
 */
public class ReflectionDemo {
 
 public ReflectionDemo () {
  String classPath = JOptionPane.showInputDialog(null, "输入类的全路径:");
  
  try {
   // 根据类的全路径加载类,返回该类的Class对象
   Class cla = Class.forName(classPath);
   
   System.out.println("------获取方法信息-------");
   Method[] methods = cla.getDeclaredMethods();
   for (Method meth:methods) {
    System.out.println(meth.toString());
   }
   System.out.println("------获取方法信息结束-------");
   
   System.out.println("------获取属性信息-------");
   Field[] fields = cla.getDeclaredFields();
   for (Field fild:fields) {
    System.out.println(fild.toString());
   }
   System.out.println("------获取属性信息结束-------");
  } catch (ClassNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }
}

3、创建运行类

package com.ljb.app.my_first_maven;

/**
 * 测试运行类
 * @author  LJB
 * @version 2015年2月28日
 */
public class TestReflection {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  ReflectionDemo rd = new ReflectionDemo();
 }

}

4、运行

4.1    弹出输入全路径对话框

4.2    全路径

    com.ljb.app.model.Student

4.3    运行结果

------获取方法信息-------
public int com.ljb.app.model.Student.getAge()
public void com.ljb.app.model.Student.setAge(int)
public java.lang.String com.ljb.app.model.Student.getGender()
public void com.ljb.app.model.Student.setGender(java.lang.String)
public void com.ljb.app.model.Student.setPassword(java.lang.String)
public java.lang.String com.ljb.app.model.Student.getName()
public void com.ljb.app.model.Student.setName(java.lang.String)
public java.lang.String com.ljb.app.model.Student.getPassword()
------获取方法信息结束-------
------获取属性信息-------
private java.lang.String com.ljb.app.model.Student.name
private int com.ljb.app.model.Student.age
private java.lang.String com.ljb.app.model.Student.gender
private transient java.lang.String com.ljb.app.model.Student.password
------获取属性信息结束-------

© 著作权归作者所有

共有 人打赏支持
学而时习之
粉丝 29
博文 93
码字总数 42877
作品 0
西安
Java反射知识总结(2)——阅读

上一部分介绍了反射的一些基本内容,现在将利用反射完成更多的事情。 一、 Field类 Field类封装了属性的信息,一个Field类封装了一个属性的信息,类似于Method对象封装了方法的信息一样。那么...

关河
2016/01/20
66
0
java反射基本理论和实例

一、先看一下反射的概念: 主要是指程序可以访问,检测和修改它本身状态或行为的一种能力,并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。 反射是java中一种强...

文文1
2016/02/16
103
0
Java反射机制(未完成,还缺最后一个)

1、背景 1)Reflection也就是反射 是Java被视为动态(或准动态)语言的一个关键性质 2)反射机制指的是程序在运行时能够获取任何类的内部所有信息 2、实现功能概述 1)只要给定类的全名,即可...

萧小蚁
2015/05/03
0
0
自己关于spring的IOC一些理解

最近闲来无事研究了一下IOC底层,于是自己写了一段代码模拟一下spring是如何做依赖注入的。 写框架首先要懂反射,JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和...

lvzjane
2012/12/04
0
0
C#利用反射,遍历获得一个类的所有属性名,以及该类的实例的所有属性的值

C#利用反射,遍历获得一个类的所有属性名,以及该类的实例的所有属性的值 总结: 对应某个类的实例化的对象tc, 遍历获取所有属性(子成员)的方法(采用反射): Type t = tc.GetType();//获得该类的...

SunHacker
2016/04/21
461
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

HTTPS is easy

HTTPS is easy https://www.troyhunt.com/https-is-easy/ HTTPS is easy! In fact, it's so easy I decided to create 4 short videos around 5 minutes each to show people how to enable ......

openthings
26分钟前
0
0
bugList 2

用户端: 1. 上传文件时,当选择:彩色-A3-双面时,第二个图片有bug 应改为 和第一个图片的类型相同 2. 确认打印时,三个下拉选目前有bug 应改为:根据后台配置的商家,group by计算出不同城...

勇恒
29分钟前
2
0
keras cnn 网咯 mnist 分类

搭建貌似比tf是简单很多。。。。。 from keras.datasets import mnistfrom keras.utils import np_utilsfrom keras.models import Sequentialfrom keras.layers import Dense, Activat......

阿豪boy
31分钟前
0
0
解决 /var/run/nginx.pid failed

nginx: [error] open() "/var/run/nginx.pid" failed (2: No such file or directory) sudo nginx -c /etc/nginx/nginx.conf nginx -s reload...

驛路梨花醉美
33分钟前
0
0
nginx负载均衡-ssl原理-生成ssl密钥对-nginx配置ssl

nginx负载均衡: 1.创建配置文件 vim /usr/local/nginx/conf/vhost/load.conf #添加以下内容: upstream qq_com #名字自定义,借助此模块定义多个IP,后面...

ZHENG-JY
33分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部