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. EF之通过不同条件查找去重复

    Enumerable.Distinct<TSource> Method(IEnumerable<TSource>, IEqualityComparer<TSource&g ...

  2. asp.net mvc中html helper的一大优势

    刚上手这个框架,发现其中的html helper用起来很方便,让我们这些从web form 过渡来的coder有一种使用控件的快感,嘻嘻! 言归正传,我要说的是在使用它时,系统会自动执行表单的现场恢复 ...

  3. 网页中嵌入百度地图报错:The request has been blocked,the content must served over Https

    网页中嵌入百度地图 1.进入百度地图开发平台:http://lbsyun.baidu.com/index.php?title=jspopular 2.获取密钥:http://lbsyun.baidu. ...

  4. NetCore1.1+Linux部署初体验

    1.环境准备 Centaos7+Win10 虚拟机 Win10安装VS2017 https://www.asp.net/downloads注意勾选下.Net Core 3.Centaos安装netco ...

  5. net core 程序docker打包镜像并发布到官方store

    学习一个技术的第一步,总是要先打印或显示一个hello world的.当然,学习docker也不例外.上一篇文章已经简单的介绍了环境的安装和配置.接下来就要打印我们的hello world了. 首先我 ...

  6. JMS 之 Active MQ 启动嵌入式Broke

    一.如何启动active MQ 服务 (一).使用命令启动 /bin 目录下 ./activemq start 默认使用conf/activemq.xml 配置文件 b.[root@localhost ...

  7. IBM新合作伙伴计划助力企业转型升级

        IBM作为老牌企业,一直在引领者技术方面的变革.当IBM再一次从自我革新开始,期望能够更快的将认知计算和云推广给自己的合作伙伴和用户们,以帮助他们在新的转型期内,能够快人一步.         ...

  8. CSS实现两端对齐效果

    CSS实现两端对齐效果 两端对齐,从概念上来说,其实不难理解.如果不明白什么叫两端对齐,可以玩玩word等办公软件. 下面谈谈如何实现文本的两端对齐.我所知道的大概有以下几种方法 text-align ...

  9. js模版引擎开发实战以及对eval函数的改进

    简介 前段时间,想着自己写一个简单的模版引擎,便于自己平时开发demo时使用,同时也算是之前学习的知识的一种总结吧! 首先我们先了解一下模版引擎的工作原理吧! 1. 模版引擎其实就是将指定标签的内容根 ...

  10. OpenStack(企业私有云)万里长征第三步——调试成功

    一.前言 折腾了一两个月(中间有事耽搁了半个月),至今日基本调试成功OpenStack,现将中间的部分心得记录下来. 二.环境 使用的是devstack newton版.具体部署过程可以参考cloud ...