反射的一些基础操作

package Util;

import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;

public class ClassUtil {
    /**
     * 获输入一个对象得其类名
     * @param obj
     * @return
     */
    public static String getClassName(Object obj){
        return obj.getClass().getName();
    }

    public static void printMethods(Object obj){
        Class c=obj.getClass();
        //获得其类方法 与其父类方法
        Method[] methods=c.getMethods();

        //如果需要获得本类方法则使用    c.getDeclaredMethods();
        //如果需要获得构造方法则使用    c.getConstructors();
        System.out.println("该类含有方法为:");
        Class[] c2=null;
        int i=0;
        for(Method m:methods){
            i++;
            c2=null;
            System.out.print(i+"(");
            System.out.print("方法名:"+m.getName()+";");
            System.out.print("返回值类型:"+m.getReturnType()+";");
            c2=m.getParameterTypes();
            System.out.print("参数类型:");
            for(int j=0;j<c2.length;j++){
                System.out.print(j+" "+c2.getClass().getName()+" ");
            }
            System.out.println(")");
        }
    }
    /**
     * 获得一个类的所有成员变量
     * @param obj
     * @return
     */
     public Map getClassFields(Object obj){
         Map maps=new HashMap();
         Class c=obj.getClass();
         Field[] fields=c.getDeclaredFields();
         String fieldType="";
         String fieldName="";
         for(Field fieid:fields){
             fieldType=fieid.getType().getName();
             fieldName=fieid.getName();
             maps.put(fieldName, fieldType);
         }
        return maps;
     }
}

反射可以通过这一系列方法对一个不知道是什么的对象进行一系列操作比如万用的toString,比如构建万用的SQL语句(前提是数据库中的列名表名跟属性名对象名相同),比如执行万用的SQL之后是不是也可以返回一个对象而不是一堆需要重新处理的参数。

反射的应用讲究在不知道是什么的情况下进行操作,抽象化,通用化,利于构建框架,常用工具

时间: 2024-11-08 23:57:03

反射的一些基础操作的相关文章

vsphere基础操作-网络

一.vsphere网络操作 概念: portgroup:通信端口组.在vsphere中,一共包含三种端口组. 1)管理网络:management network,可以理解为EXSI主机的管理IP地址.每个EXSI必须配置一个管理网络IP,使得vc能够管理到exsi.每个EXSI只能有一个唯一的管理网络. 2)内核:vmkernel,可以理解为EXSI的后端IP,使得后端各项功能能够实现.这里所说的后端功能指的是EXSI之间的通讯以实现VMOTION等高级功能.连入ISCSI或NAS等存储.FT功

Mysql安装和基础操作

1.环境检查: 先检查是否已经安装了:rpm -qa |grep mysql ---两个都检查下,查看mysql是否安装 rpm -qa |grep MySQL若安装有可删除:rpm -e ****** 2.安装:1)安装前准备:mkdir usr/mysql cd进入该目录,上传安装包到/usr/mysql目录下2)安装:rpm -ivh MySQL-server-5.0.16-0.i386.rpm rpm -ivh MySQL-elient-5.0.16-0.i386.rpm3)验证安装是否

双向链表的基础操作(C++实现)

★C++实现双向链表的基础操作(类的实现) #include<iostream> #include<cassert> using namespace std; typedef int DataType; class double_link_list {                        //定义双向链表类,包括了双向的前驱和后继指针,以及对象的初始化 public: friend class ListNode; double_link_list(DataType x =

数据结构-线性表的一些基础操作 c++代码

//线性表的顺序存储结构 template <class T> class Linearlist { public: Linearlist(int MaxListSize == 10); ~Linearlist() { delete []element; } bool IsEmpty() const { return length == 0; } bool IsFull() const { return length == MaxSize; } int Length() const { ret

php之文件基础操作

在php中对文件的基础操作非常的简单,php提供的函数粗略的用了一遍. file_get_contents():可以获取文件的内容获取一个网络资源的内容,这是php给我封装的一个比较快捷的读取文件的内容.网络资源的函数,此函数里面封装了对文件的打开,读取,关闭操作.一次性的将内容全部读取到内存中,相当方便,但是对于大文件或者网络资源较大的时候,不建议使用.file_put_contents():写入数据,和file_get_contents()类似. 文件的基础操作:touch()--新建,fo

环境变量,属性文件,文件基础操作,目录基础操作,遍历指定后缀名文件

环境变量和属性 环境变量相关: 1.得到某个/所有环境变量的值 2.设置环境变量的值 3.列出全部系统属性名 import java.util.Enumeration; import java.util.Map; import java.util.Map.Entry; import java.util.Properties; public class Environment { public static void main(String[] args) { // TODO Auto-gener

SQLSERVER 数据库基础操作

1.修改表中字段的长度,类型为varchar,从30改到50 语句执行(注:当前为30): alter table 表名 alter column 列名 varchar(50) 2.增加字段: alter table 表名 add 字段 varchar(50) SQLSERVER 数据库基础操作,布布扣,bubuko.com

mysql的基础操作指令整理|环境redhat6

1.安装 yum-y install mysql mysql-server service mysqld start|stop|restart        ##启动|停止|重启 chkconfig mysqld on|off                  ##开机启动|关闭 此时输入:mysql就能启动进入(记得是start状态) 2.改密 mysqladmin –uroot password             ##创建密码 mysqladmin–uroot –pxxoo passw

Mac下Git的基础操作

目前最火的版本控制软件是Git了吧,今天简单梳理一下Mac下Git的基础操作~~ 一.什么是Git Git是一个分布式代码管理工具,用于敏捷的处理或大或小的项目,类似的工具还有svn. 基于Git的快速的.免费的.稳定的在线代码托管平台有github,还有一些国内的,coding.csdn代码托管平台.京东代码托管平台等等. 二.Git的基本使用 1.注册一个git账号 咱们以coding代码托管平台为例来简单介绍 A.登陆coding网站https://coding.net/,注册coding