反射练习

1.反射

一种计算机处理方式。是程序可以访问、检测和修改它本身状态或行为的一种能力。

新建一个Person类:

public class Person {
private int age;
private String name;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Person(){}private Job job;
public Job getJob() {
return job;
}
public void setJob(Job job) {
this.job = job;
}
}

2.再建一个测试类:

public class TestUI {public static void main(String[] args) {Class classzz = Person.class;Field[] fields = classzz.getDeclaredFields();for(Field f:fields){Class c = f.getType();if(c.getPackage()!=null){if(c.getPackage().getName().equals("com.Test")){//筛选出Job类System.out.println(c.getPackage().getName());System.out.println("字段的类型:"+c.getName());System.out.println("该字段的名字:"+f.getName());}}}String userInfoSQL = BeanUtil.getSelect(new UserInfo());System.out.println(userInfoSQL);}
}

 3.新建一个Job类:

public class Job {private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}
}

4.BeanUtil类的内容

public class BeanUtil {public static String getSelect(Object obj){Class classzz = obj.getClass();String TableName = classzz.getSimpleName();StringBuffer sql = new StringBuffer();sql.append("Select * from "+TableName+" ");return sql.toString();}
}

 

5.显示结果:

com.Test
字段的类型:com.Test.Job
该字段的名字:job
Select * from UserInfo//提取出BeanUtil里的sql语句

转载于:https://www.cnblogs.com/lvtian/p/5579518.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/395776.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开源 物联网接入_我们刚刚推出了开源产品。 那么接下来会发生什么呢?

开源 物联网接入by Victor F. Santos由Victor F.Santos 我们刚刚推出了开源产品。 那么接下来会发生什么呢? (We just launched an open source product. So what happens next?) Last month me and the ninja god Pedro launched GitShowcase, a plug-and-play p…

Class? getClass()

getClass()方法属于Object的一部分,它将产生对象的类,并且在打印该类时,可以看到该类类型的编码字符串,前导"["表示这是一个后满紧随的类型的数组,而紧随的"I"表示基本类型int, //: initialization/OptionalTrailingArgrments.java package object;import …

log4j使用说明

1.log4j代码中修改输出级别:如: protected final Logger logger LoggerFactory.getLogger(Test.class); 将其转成实现类,修改输出级别即可System.out.println(logger.isDebugEnabled()?"debug is true":"debug is false&quo…

java list集合增删改_Java中集合类list的增删改查

今天给大家带来的是Java中list类的使用,java.util 包提供了list类来对线性数据操作List接口是Collection接口的子接口,List有一个重要的实现类--ArrayList类,List中的元素是有序排列的而且可重复,所以被称为是序列List可以精确的控…

IIS6、IIS7和IIS8各版本的差别

一、写在前面 目前市面上所用的IIS版本估计都是>6.0的.所以我们主要以下面三个版本进行讲解 服务器版本IIS默认版本server20036.0server20087.0server20128.0二、IIS6的请求过程 由图可知,所有的请求会被服务器中的http.sys组件监听到,它会根据IIS中的 Metabase 查看基于该 …

Android Studio 插件的使用

1、GsonFormat https://github.com/zzz40500/GsonFormat 2、Android SelectorChapek http://blog.csdn.net/weifei554287925/article/details/41727541

函数式编程基础_在收件箱中免费学习函数式编程的基础

函数式编程基础by Preethi Kasireddy通过Preethi Kasireddy 在收件箱中免费学习函数式编程的基础 (Learn the fundamentals of functional programming — for free, in your inbox) If you’re a software developer, you’ve probably noticed a growing trend: software ap…

安卓Java虚拟机大小_虚拟机为安卓流畅度背锅,是因为关系数十万程序员饭碗?...

导读:虚拟机相当于应用程序在不同运行环境中的翻译。说起谷歌安卓系统的“虚拟机”,很多人爱拿它和苹果iOS做比较,结果,安卓的很多短腿儿都让虚拟机背了锅,比如安卓手机运存容量是iPhone的两到三倍,流畅度却…

Redis PHP连接操作

安装 要在PHP程序中使用Redis,首先需要确保 Redis 的PHP驱动程序和 PHP 安装设置在机器上。可以查看 PHP教程 教你如何在机器上安装PHP。现在,让我们来看看一下如何设置 Redis 的PHP驱动程序。 需要从 github 上资料库: https://github.com/n…

AppCompatActivity实现全屏的问题

前言:我的 Activity 是继承 BaseActivity , 而 BaseActivity 继承 AppCompatActivity 。 BaseActivity 的继承 /*** 应用程序的基类**/ public class BaseActivity extends AppCompatActivity {}HomeActivity 的继承 public class HomeActivity extends BaseActivit…

aws cognito_使用AWS Cognito的用户管理—(1/3)初始设置

aws cognitoby Kangze Huang黄康泽 使用AWS Cognito的用户管理—(1/3)初始设置 (User Management with AWS Cognito — (1/3) Initial Setup) 完整的AWS Web样板-教程1A (The Complete AWS Web Boilerplate — Tutorial 1A) Main Table of Contents Click Here主要目录请点击这…

java建一个conversion_Scala中的JavaConverters和JavaConversions之间有什么区别?

JavaConversions 提供了一系列隐式方法,可以在Java集合和最接近的相应Scala集合之间进行转换,反之亦然 . 这是通过创建实现Scala接口的包装器并将调用转发到底层Java集合或Java接口,将调用转发到底层Scala集合来完成的 .JavaConverters 使用p…

flexbox:1.0.0_了解Flexbox:您需要了解的一切

flexbox:1.0.0This article will cover all the fundamental concepts you need to get good with the CSS Flexbox model. It’s a long one, so I hope you’re ready for it.本文将介绍您熟悉CSS Flexbox模型所需的所有基本概念。 这是一个很长的时间,所以希望您…

10.Object类

在JAVA中,所有的类都直接或间接继承了Java.lang.Object类Object是一个特殊的类,他是所有类的父类,是Java类层中的最高层类。当创建一个类时,他总是在继承,除非某个类已经指定要从其他类继承,否则他就是从ja…

RecyclerView的下拉刷新和加载更多 动画

下拉刷新和加载更多 1、https://github.com/jianghejie/XRecyclerView 2、http://blog.csdn.net/jabony/article/details/44780187 动画 1、https://github.com/wasabeef/recyclerview-animators

java中显示动态信息的方法_java里的动态表单技术

最近的一个项目,由于客户的需求等信息不确定,为了降低以后修改的成本及产品的推广考虑到动态表单技术,之前也一直在考虑到动态表单技术,毕竟在delphi里已经实现过了,由于我们采用的hibernate的执久层的原故&#xff0c…

Cinder 组件详解 - 每天5分钟玩转 OpenStack(47)

本节我们将详细讲解 Cinder 的各个子服务。 cinder-api cinder-api 是整个 Cinder 组件的门户,所有 cinder 的请求都首先由 nova-api 处理。cinder-api 向外界暴露若干 HTTP REST API 接口。在 keystone 中我们可以查询 cinder-api 的 endponits。 客户端可以将请…

中国移动 全球通、 动感地带、神州行 的区别

1、全球通 1、主要面向商务人士可以享受机场VIP俱乐部的尊贵、1860专席的高质量服务、个性化账单、客户积分奖励以及大客户经理贴心服务,更有尊贵资费套餐优惠,但它价格也是最贵的。 2、全球通面对事业成功的人士,进取。 3、全球通&#xff…

java 并发测试main方法_java并发编程test之synchronized测试

synchronized关键字可以用于声明方法,也可以用于声明代码块;package com.test.java;public class SyncTest {public static void main(String[] args) {SynchronizedDemo1 synct1 new SynchronizedDemo1();SynchronizedDemo2 synct new SynchronizedDemo2();SynchronizedDemo…

业余爱好者linux_如何从业余爱好者变成专业开发人员

业余爱好者linuxby Ken Rogers肯罗杰斯(Ken Rogers) 如何从业余爱好者变成专业开发人员 (How to Go From Hobbyist to Professional Developer) A few years ago, I was bouncing back and forth between landscaping jobs and restaurant jobs. I had just left college, and…