1.Student类

 package com.zdsofe.javaweb.lianxi1;

 public class Student {
public String stuName;
private String sex;
private int age; public String getStuName() {
return stuName;
}
public void setStuName(String stuName) {
this.stuName = stuName;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
} public Student(String stuName, int age) {
super();
this.stuName = stuName;
this.age = age;
}
public Student(String stuName, String sex) {
super();
this.stuName = stuName;
this.sex = sex;
}
public Student() { }
public String tostring()
{
return "姓名为:"+this.stuName+",性别为:"+this.sex;
}
}

2.测试类

 package com.zdsofe.javaweb.lianxi1;

 import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method; public class Test { public static void main(String[] args) throws Exception {
/*//获取class对象的方法一
Student stu=new Student();
Class<?>class1=stu.getClass();
System.out.println(class1); //获取class对象的方法二(获得这个包下的这个类的地址)
Class<?> class2=Class.forName("com.zdsofe.javaweb.lianxi1.Student");
System.out.println(class2); //获取class对象的方法二
Class<?> class3=Student.class;
System.out.println(class3.getSimpleName()); //获得类的public类型属性
Field[] pb=class3.getFields();
System.out.println(pb.length); //获得类的所有属性
Field[] pb1=class3.getDeclaredFields();
System.out.println(pb1.length); //获得类的public方法(继承自object类的方法也计算在内)
Method[]a=class3.getMethods();
System.out.println(a.length);
for(Method i:a)
{
System.out.println(i);
} //获得类的所有方法(当前类下的方法)
Method[]a1=class3.getDeclaredMethods();
System.out.println(a1.length); //获得类的public构造方法
Class<?> cla=Student.class;
Constructor<?>[] c=cla.getConstructors();
System.out.println(c); //获得所有的构造方法
Constructor<?>[] c1=cla.getDeclaredConstructors();
System.out.println(c1);
*/
/* //获取Student类对应的class对象
Class<?> cls=Student.class; //获取Student类的无参构造方法对应的Constructor对象
Constructor<?> c1=cls.getConstructor(); //获取Student类的有参构造方法对应的Constructor对象
Constructor<?> c2=cls.getConstructor(String.class,String.class);
System.out.println(c2); //调用Class对象的newInstance()方法创建Student对象
Student stu1=(Student)cls.newInstance();
System.out.println(stu1.tostring()); //调用Constructor对象的newInstance()方法创建Student对象(无参)
Student stu2=(Student)c1.newInstance();
System.out.println(stu2.tostring());
//调用Constructor对象的newInstance()方法创建Student对象(有参)
Student stu3=(Student)c2.newInstance("张三","女");
System.out.println(stu3.tostring());*/ /* //获取Student类对应的class对象
Class<?> cls=Student.class;
//通过Student的无参构造方法来创建Student对象
Object obj= cls.newInstance();
//获取到stuName对应的Field对象
Field f1=cls.getField("stuName");
//调用Field对象的set方法为对象的stuName属性赋值
f1.set(obj, "张三");
//获取私有变量对应的Field的对象
Field f2=cls.getDeclaredField("sex");
//sex是私有的,所以要通过反射机制访问该变量
f2.setAccessible(true);
f2.set(obj, "女");
//获取到obj的属性值
Object result1= f2.get(obj);
Object result2=f1.get(obj);
System.out.println(result1+":"+result2);
Student stu=(Student)obj;
System.out.println(stu.getStuName()+":"+stu.getSex());*/ //获取Student类对应的class对象
Class<?> cls=Student.class;
//通过方法名和方法的参数类型来获取Student类的public方法
Method m1= cls.getMethod("setStuName", String.class);
Method m2=cls.getMethod("setSex",String.class);
String name=m1.getName();
System.out.println(name); }
}

Java映射的更多相关文章

  1. java映射(map用法)

    主要分两个接口:collection和Map 主要分三类:集合(set).列表(List).映射(Map)1.集合:没有重复对象,没有特定排序方式2.列表:对象按索引位置排序,可以有重复对象3.映射: ...

  2. java高级用法之:JNA类型映射应该注意的问题

    目录 简介 String Buffers,Memory,数组和Pointer 可变参数 总结 简介 JNA提供JAVA类型和native类型的映射关系,但是这一种映射关系只是一个大概的映射,我们在实际 ...

  3. Java企业实训 - 01 - Java前奏

    前言: 虽然个人专攻.NET方向,不过由于个人是干教育行业的,方方面面的东西,不能说都必须精通,但肯定多少都会涉及到. 一个菜鸟学员,从啥都不会,经过一步步学习,最后到企业上手掌管一个模块甚至一个项目 ...

  4. java程序操作Geometry对象

    Geometry 空间地理对象,Oracle中存储Geometry对象的字段类型是 MDSYS.SDO_GEOMETRY,在数据库中构建Geometry对象的方法: v_pointarray MDSY ...

  5. JAVA分布式事务原理及应用(转)

      JTA(Java Transaction API)允许应用程序执行分布式事务处理--在两个或多个网络计算机资源上访问并且更新数据. JDBC驱动程序的JTA支持极大地增强了数据访问能力. 本文的目 ...

  6. Java程序员从笨鸟到菜鸟之(五十一)细谈Hibernate(二)开发第一个hibernate基本详解

    在上篇博客中,我们介绍了<hibernate基本概念和体系结构>,也对hibernate框架有了一个初步的了解,本文我将向大家简单介绍Hibernate的核心API调用库,并讲解一下它的基 ...

  7. JAVA分布式事务原理及应用

    JTA(Java Transaction API)允许应用程序执行分布式事务处理--在两个或多个网络计算机资源上访问并且更新数据.JDBC驱动程序的JTA支持极大地增强了数据访问能力. 本文的目的是要 ...

  8. 尚学堂Java面试题整理

    博客分类: 经典分享   1. super()与this()的差别? - 6 -  2. 作用域public,protected,private,以及不写时的差别? - 6 -  3. 编程输出例如以 ...

  9. java.sql.Types,数据库字段类型,java数据类型的对应关系

    以下转自:http://kummy.itpub.net/post/17165/172850 本文在原文基础上有增减. 本概述是从<JDBCTM Database Access from Java ...

随机推荐

  1. 深入理解 JavaScript 事件循环(二)— task and microtask

    引言 microtask 这一名词是 JS 中比较新的概念,几乎所有人都是在学习 ES6 的 Promise 时才接触这一新概念,我也不例外.当我刚开始学习 Promise 的时候,对其中回调函数的执 ...

  2. IDEA报错处理:Application Server was not connected before run configuration stop, reason: Unable to ping server at localhost:8080

    把wildfly的整个软件包更换成新的,配置文件重新配置,JBOSS_HOME环境变量修改成新的,在wildfly-10.1.0.FinalForTest\modules\system\layers\ ...

  3. codeM美团编程大赛初赛B轮D题

    [编程题] 模 时间限制:1秒空间限制:32768K 给定四个正整数a,b,c,k,回答是否存在一个正整数n,使得a*n在k进制表示下的各位的数值之和模b为c.输入描述:第一行一个整数T(T < ...

  4. java源码学习(五)LinkedList

    LinkedList [TOC] 一.定义 public class LinkedList<E> extends AbstractSequentialList<E> imple ...

  5. jquery取出所有包含class='engineer_val'的值

    $(".engineer_val").each(function(){ //jquery取出所有包含class='engineer_val'的值 $(); });

  6. H5学习第二周

    怎么说,在各种感觉中h5学习的第二周已经过来了,先总结一下,感觉学习h5是一件让我爱恨交加的事,学会一些新的知识并把它成功运行出来的时候是非常激动和兴奋的,但是有时候搞不懂一个标签或者属性的时候,就有 ...

  7. EXT 基础环境搭建

    EXT 基础环境搭建使用 Sencha CMD 下载地址 https://www.sencha.com/products/extjs/cmd-download/ Sencha CMD 常用命令 API ...

  8. 一个DOM元素同时拥有多个类名时的样式产生冲突时 属性取决于css样式表中后读取到的属性

    如果一个DOM元素包含多个类名,其中的两个类名的属性产生冲突,并不是根据htnl中类名的顺序来决定DOM元素的属性, 而是根据css样式中的顺序来决定DOM元素的属性,它取决于css样式表中后读取到的 ...

  9. 暂停和播放CSS3动画的两种实现方法

    1,直接修改animationPlayState <!DOCTYPE html> <html> <head lang="en"> <met ...

  10. Lniux下安装mysql----编译版

    ####安装mysql-5.7.10rpm -e --nodeps mysqlrpm -e mysqlclient10useradd -g mysql -s /sbin/nologininstall_ ...