文档章节

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

学而时习之
 学而时习之
发布于 2015/02/28 14:11
字数 428
阅读 27
收藏 0
点赞 0
评论 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
博文 92
码字总数 42877
作品 0
西安
Java反射知识总结(2)——阅读

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

关河 ⋅ 2016/01/20 ⋅ 0

反射技术阻止对话框关闭

Java中反射机制: 允许运行中的程序对自身进行检查,并能直接操作程序内部的属性或者方法。 理解: JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法; 对于任...

新根 ⋅ 2015/08/15 ⋅ 0

java反射基本理论和实例

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

文文1 ⋅ 2016/02/16 ⋅ 0

Java反射机制(未完成,还缺最后一个)

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

萧小蚁 ⋅ 2015/05/03 ⋅ 0

自己关于spring的IOC一些理解

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

lvzjane ⋅ 2012/12/04 ⋅ 0

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

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

SunHacker ⋅ 2016/04/21 ⋅ 0

万能判空工具类,从此跟NullPointerException说再见

前言 本着“书同文,车同轨”的理念,阿里巴巴在2018年3月发布了《阿里巴巴安卓开发手册》的正式版,于此同时阿里云也开放了安卓规约的考试认证。认证通道刚刚开通的时候价格还比较公道,考试...

PenguinMan ⋅ 04/08 ⋅ 0

接触C# 反射

1、反射的概念详解[1] 1.1 理解C#中的反射 1、B超:大家体检的时候大概都做过B超吧,B超可以透过肚皮探测到你内脏的生理情况。这是如何做到的呢?B超是B型超声波,它可以透过肚皮通过向你体内...

橘子红了呐 ⋅ 2017/11/07 ⋅ 0

JavaSE_8系列博客——专家之路(一)---Java反射的总结

先来四个基本问题: 一、什么是反射(what)? 生活中的反射 百科定义:反射(外文名reflection),指的是声波、光波或其他电磁波遇到别的媒质分界面而部分仍在原物质中传播的现象。如光的反射...

u011500356 ⋅ 2017/10/22 ⋅ 0

反射一些理解

java反射详解 自己的一些理解: 反射也可以理解为动态调用写了一个.java文件,编译后为字节码文件,虚拟机加载了这个字节码文件也就是加载到内存中,就能执行一些指令。在这个类中 当我需要调...

notyBoy ⋅ 2014/02/28 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

如何优雅的编程——C语言界面的一点小建议

我们鼓励在编程时应有清晰的哲学思维,而不是给予硬性规则。我并不希望你们能认可所有的东西,因为它们只是观点,观点会随着时间的变化而变化。可是,如果不是直到现在把它们写在纸上,长久以...

柳猫 ⋅ 27分钟前 ⋅ 0

从零手写 IOC容器

概述 IOC (Inversion of Control) 控制反转。熟悉Spring的应该都知道。那么具体是怎么实现的呢?下面我们通过一个例子说明。 1. Component注解定义 package cn.com.qunar.annotation;impo...

轨迹_ ⋅ 27分钟前 ⋅ 0

系统健康检查利器-Spring Boot-Actuator

前言 实例由于出现故障、部署或自动缩放的情况,会进行持续启动、重新启动或停止操作。它可能导致它们暂时或永久不可用。为避免问题,您的负载均衡器应该从路由中跳过不健康的实例,因为它们...

harries ⋅ 29分钟前 ⋅ 0

手把手教你搭建vue-cli脚手架-详细步骤图文解析[vue入门]

写在前面: 使用 vue-cli 可以快速创建 vue 项目,vue-cli很好用,但是在最初搭建环境安装vue-cli及相关内容的时候,对一些人来说是很头疼的一件事情,本人在搭建vue-cli的项目环境的时候也是...

韦姣敏 ⋅ 39分钟前 ⋅ 0

12c rman中输入sql命令

12c之前版本,要在rman中执行sql语句,必须使用sql "alter system switch logfile"; 而在12c版本中,可以支持大量的sql语句了: 比如: C:\Users\zhengquan>rman target / 恢复管理器: Release 1...

tututu_jiang ⋅ 53分钟前 ⋅ 0

Nginx的https配置记录以及http强制跳转到https的方法梳理

Nginx的https配置记录以及http强制跳转到https的方法梳理 一、Nginx安装(略) 安装的时候需要注意加上 --with-httpsslmodule,因为httpsslmodule不属于Nginx的基本模块。 Nginx安装方法: ...

Yomut ⋅ 今天 ⋅ 0

SpringCloud Feign 传递复杂参数对象需要注意的地方

1.传递复杂参数对象需要用Post,另外需要注意,Feign不支持使用GetMapping 和PostMapping @RequestMapping(value="user/save",method=RequestMethod.POST) 2.在传递的过程中,复杂对象使用...

@林文龙 ⋅ 今天 ⋅ 0

如何显示 word 左侧目录大纲

打开word说明文档,如下图,我们发现左侧根本就没有目录,给我们带来很大的阅读障碍 2 在word文档的头部菜单栏中,切换到”视图“选项卡 3 然后勾选“导航窗格”选项 4 我们会惊奇的发现左侧...

二营长意大利炮 ⋅ 今天 ⋅ 0

智能合约编程语言Solidity之线上开发工具

工具地址:https://ethereum.github.io/browser-solidity/ 实例实验: 1.创建hello.sol文件 2.调试输出结果

硅谷课堂 ⋅ 今天 ⋅ 0

ffmpeg 视频格式转换

转 Mp4 格式 #> ffmpeg -i input.avi -c:v libx264 output.mp4#> ffmpeg -i input.avi -c:v libx264 -strict -2 output.mp4#> ffmpeg -i input.avi -c:v libx264 -strict -2 -s 1......

Contac ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部