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. [0] CollectionBase与索引符DictionaryBase与迭代器

    对于简单数组来说,需要用固定的大小来初始化,才能使用: Animal[] myAnimal=new Animal[10]; myAnimal[0]=new Cow("Ken"); ...

  2. swiper结合ajax的轮播图

    Swiper 是什么:是纯JavaScript打造的滑动特效插件,能够实现触屏焦点图.触屏tab切换.触屏多图切换等常用效果. 开源.免费.稳定.应用广泛. 这就是swiper简单的介绍,由于是结合a ...

  3. ORA-00245问题总结

    (1)问题描述 在进行数据库归档备份时(备份归档日志文件和控制文件),有时成功,有时失败,失败报错如下: RMAN-00571: =================================== ...

  4. 如何在BCGControlBar界面库的CBCGPFormView子视图里面添加工具栏

    最近有一个项目需求,需要在子视图里面添加一个新工具栏用来处理当前视图对应模块的操作.之前在对话框模式下做过添加工具栏的实现,在CBCGPFormView中添加工具栏还是头一次.在这里记录一下,给自己留 ...

  5. 用netsh wlan命令行解决“Win10下WLAN不自动登陆”问题

    系统崩溃了,找了一个版本Windows 10重装后,发现进入系统后不会自动连接自己家的Wifi,每次都要手动点"登录",烦不胜烦. 于是百度.Google一起上,找解决方案,然后所 ...

  6. oracle数据库的编码

    --oracle数据库的编码select * from nls_database_parameters where parameter ='NLS_CHARACTERSET';--oracle客户端编 ...

  7. oracle 树形表结构查询 排序

    oracle 树形表结构排序 select * from Table start with parentid is null connect by prior id=parentid order SI ...

  8. Kotlin入门第四课:简单工厂模式

    Kotlin基础知识的学习,请参考之前的文章: Kotlin入门第一课:从对比Java开始 Kotlin入门第二课:集合操作 Kotlin入门第三课:数据类型 初次尝试用Kotlin实现Android ...

  9. 如何使程序运行在UI线程

    context.runOnUiThread(new Runnable() { @Override public void run() { _prop = new Prop(buyType, money ...

  10. Jenkins+Ant+TestNG+Testlink自动化构建集成(完整版)

    这段时间折腾自动化测试,之前都是在Eclipse工程里面手工执行自动化测试脚本,调用Testlink API执行测试用例,目前搭建Jenkins自动化构建测试的方式,实现持续构建,执行自动化测试. 硬 ...