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. 在C#中初遇Socket - 2

    后期项目实战:多人在线聊天室 源码位置:https://git.oschina.net/z13qu/BlogProjects 前言 第一篇主要对Socket有个基本认识,实现初始化,发送.接受消息:本 ...

  2. docker--数据卷与数据卷容器

    docker--数据卷与数据卷容器 1.数据卷: 创建一个volumes的文件夹: [root@docker01 /]# mkdir volumes [root@docker01 /]# ls bin ...

  3. linux服务器load的含义

    Linux的Load(系统负载),是一个让新手不太容易了解的概念.load的就是一定时间内计算机有多少个active_tasks,也就是说是计算机的任务执行队列的长度,cpu计算的队列. top/up ...

  4. [leetcode-474-Ones and Zeroes]

    In the computer world, use restricted resource you have to generate maximum benefit is what we alway ...

  5. Example004自动关闭的广告窗口

    <!-- 实例004自动关闭的广告窗口--> <!-- 3秒后关闭 --> <body onload="window.setTimeout('window.cl ...

  6. ==,=和equals()区别

    equals和=,==的区别   一. ==和equals的区别 1. ==是运算符 2. equals是String对象的方法 一般有两种类型的比较 1. 基本数据类型的比较 2. 引用对象的比较 ...

  7. js或者jq的tab切换

    <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...

  8. 使用Homebrew配置Java开发环境

    查询java brew cask search java 查看版本信息 brew cask info java 从官网下载并安装 JDK 8 brew cask install java 需要安装 J ...

  9. Your password does not satisfy the current policy requirements

    创建用户,做测试想设置一个简单的密码.报错: 大概是MySQL5.7搞事情,默认安装了validate_password插件. mysql> SHOW VARIABLES LIKE 'valid ...

  10. Bootstrap选项卡

    前面的话 选项卡Tabs是Web中一种非常常用的功能.用户点击对菜单项,能切换出对应的内容.本文将详细介绍Bootstrap选项卡 基本用法 Bootstrap框架中的选项卡主要有两部分内容组成: 1 ...