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. python 中 for 循环 if循环 break

    python中最基本的语法格式大概就是缩进了.python中常用的循环:for循环,if循环.一个小游戏说明for,if ,break的用法. 猜数字游戏: 1.系统生成一个20以内的随机数 2.玩家 ...

  2. Akka(8): 分布式运算:Remoting-远程查找式

    Akka是一种消息驱动运算模式,它实现跨JVM程序运算的方式是通过能跨JVM的消息系统来调动分布在不同JVM上ActorSystem中的Actor进行运算,前题是Akka的地址系统可以支持跨JVM定位 ...

  3. MongoDB--数据库与Collection注意事项

    <h2>    <strong>注意事项:</strong></h2>1.数据库名注意应该全部小写,不能包含空格,最大长度为64K名称<br /& ...

  4. 利用jenkins做项目的自动化部署

    最近领导要求上海本地的项目需要使用进jenkins实现自动化部署,以便可以直接将项目移交给运维的同学,减轻开发的工作量.记录下这次爬坑的过程. 一.前言 Jenkins是基于Java开发的一种持续集成 ...

  5. C++基础之引用与指针的区别与联系、常引用使用时应注意的问题

    什么是引用? 引用就是对变量起一个别名,而变量还是原来的变量,并没有重新定义一个变量.例如下面的例子:   #include<iostream> using namespace std; ...

  6. 2017寒假零基础学习Python系列之函数之 编写函数

    定义一个函数用def语句 格式为:def + 函数名.括号.括号中的参数和冒号 比如定义一个求绝对值的函数: def my_abs(x): if x>= 0: return x else ret ...

  7. javaScript事件绑定

    事件绑定,就是要对某一个东西进行操作.(因为你想让他实现什么效果,所以就得绑定他,哈哈哈!) 要想让 JavaScript 对用户的操作作出响应,首先要对 DOM 元素绑定事件处理函数.所谓事件处理函 ...

  8. mvcSSHweb.xml要配置的信息

    <?xml version="1.0" encoding="UTF-8"?><web-app version="3.0" ...

  9. centos+apache 2.x 开启gzip压缩

    最近做了一个网站(PHP+Apache+MySQL),挂在百度云平台上面,基本配置是2G内存+5Mb带宽,每次打开主页都需要2-3s左右的时间,对于一个垂直搜索引擎来说,用户体验肯定会很差. 于是开始 ...

  10. WAMPServer多站点配置方法

    WAMPServer多站点配置方法:1.在C:\wamp\www 新建文件夹test01,在里面新建index.php,内容为 "Hello Test01". 2.C:\wamp\ ...