java中如何通过Class获取类的属性、方法、注释
public static String getPKName(Class clazz) {
		Field[] fields = clazz.getDeclaredFields();
		for (Field f : fields) {
			Annotation[] annotations = f.getAnnotations();
			if (annotations.length <= 0) {
				String name = f.getName();
				String setMethodName = "get" + org.apache.commons.lang.StringUtils.left(name, 1).toUpperCase() + org.apache.commons.lang.StringUtils.substring(name, 1);
				try {
					Method method = clazz.getDeclaredMethod(setMethodName);
					annotations = method.getAnnotations();
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
			for (Annotation anno : annotations) {
				if (anno.toString().contains("@javax.persistence.Id()"))
					return f.getName();
			}
		}
		return null;
java中如何通过Class获取类的属性、方法、注释的更多相关文章
- Java反射学习-1 - 反射获取类的属性,方法,构造器
		新建一个Person类 package cn.tx.reflect; /** * 注解初步了解 * @author Administrator * */ public class Person { p ... 
- 如何获取类或属性的自定义特性(Attribute)
		如何获取类或属性的自定义特性(Attribute) 问题说明: 在ActiveRecord或者其他的ORM等代码中, 我们经常可以看到自定义特性(Attribute)的存在(如下面的代码所示) [Pr ... 
- java 中利用反射机制获取和设置实体类的属性值
		摘要: 在java编程中,我们经常不知道传入自己方法中的实体类中到底有哪些方法,或者,我们需要根据用户传入的不同的属性来给对象设置不同的属性值,那么,java自带的反射机制可以很方便的达到这种目的,同 ... 
- Java中必须了解的常用类
		1.Java的包装类 基本数据类型我们都很熟悉,例如:int.float.double.boolean.char等,基本数据类型不具备对象的特征,不能调用方法,一般能实现的功能比较简单,为了让基本数据 ... 
- Java中各种集合(字符串类)的线程安全性!!!
		Java中各种集合(字符串类)的线程安全性!!! 一.概念: 线程安全:就是当多线程访问时,采用了加锁的机制:即当一个线程访问该类的某个数据时,会对这个数据进行保护,其他线程不能对其访问,直到该线程读 ... 
- Java中的集合和常用类
		Java中的常用类: ▪ Object类 ▪ Math类 ▪ String类和StringBuffer类(字符串) ▪ 8种基本类型所对应的包装类 ▪ java.util包中的类——Date类 Obj ... 
- JAVA基础——Java 中必须了解的常用类
		Java中必须了解的常用类 一.包装类 相信各位小伙伴们对基本数据类型都非常熟悉,例如 int.float.double.boolean.char 等.基本数据类型是不具备对象的特性的,比如基本类型不 ... 
- Java中是否可以调用一个类中的main方法?
		前几天面试的时候,被问到在Java中是否可以调用一个类中的main方法?回来测试了下,答案是可以!代码如下: main1中调用main2的主方法 package org.fiu.test; impor ... 
- java利用反射获取类的属性及类型
		java利用反射获取类的属性及类型. import java.lang.reflect.Field; import java.math.BigDecimal; import java.util.Map ... 
随机推荐
- jquery parents用法
			之前一直用find 现在用parents var w = $("div"); w = $("div").parents('.class'); //在Parent ... 
- golang interface接口
			package main import "fmt" type Shaper interface { Area() float32 } type Square struct { si ... 
- Hibernate分页查询的两个方法
			Hibernate中HQL查询语句有一个分页查询, session.setMaxResult(参数)和session.setFirstResult(参数) 如果只设置session.setMaxRes ... 
- maven部署项目流程(区分环境)
			java项目区分环境打包部署到Linux 本文以一个简单的HelloWorld的项目为例,从pom.xml配置到打jar包,最后在linux上运行并验证来对maven部署的这套流程进行简单介绍. 为方 ... 
- #define宏常量和const常量的区别
			C++ 语言可以用const 来定义常量,也可以用#define 来定义常量.但是前者比后者有更多的优点:(1) const 常量有数据类型,而宏常量没有数据类型.编译器可以对前者进行类型安全检查.而 ... 
- DOS 命令集锦——最常用命令
			一. 常用命令: cd 改变当前目录 sys 制作DOS系统盘 (电脑入门到精通网 www.58116.cn) copy 拷贝文件 del 删除文件 deltree 删除目录树 dir 列 ... 
- css学习-css引入&css选择
			一.引入css的方式,一共有4种,我们只需要掌握三种就可以了,@import的方法我们不做掌握 1.第一种引入的方法 <!--1.第一种引入css的方法--> <h1 style=& ... 
- docker搭建nginx
			在Docker下部署Nginx,包括: 部署一个最简单的Nginx,可以通过端口访问默认的网站 设置记录访问和错误日志的路径 以交互模式创建centos容器,如果本地没有镜像,会从仓库获取, 等待即可 ... 
- Volley下载图片存放在data/data下  networkImageView   lrucache
			networkImageView 设置图片的方法 (有效) imageView.setImageUrl("https://www.baidu.com/img/bd_logo1.png&qu ... 
- vsftp 500 OOPS: cannot change directory:/home/xyp
			1.在linux终端下输入: > setsebool ftpd_disable_trans 1 (*如果出现Could not change active booleans: Invalid b ... 
