java反射机制:

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和

属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。

代码示例:

Cats类:

 package cn.happy.demo;

 @SuppressWarnings(value="unchecked")
@Deprecated
public class Cats {
//无参构造
public Cats(){}
//带参构造
public Cats(String str){}
//无参方法
public void into(){}
//代参方法
public void into(String str){}
//内部类
class inner{} }

CatDemos类:

 package cn.happy.demo;

 import java.lang.annotation.Annotation;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method; public class CatDemos { public static void main(String[] args) { Class<Cats> clas = Cats.class;
Constructor[] con = clas.getDeclaredConstructors();
System.out.println("*********获取构造方法*********");
for (Constructor constructor2 : con) {
System.out.println(constructor2.toString());
}
System.out.println("************获取构造方法结束**********");
Method[] me = clas.getDeclaredMethods();
System.out.println("***********获得公共方法开始************");
for (Method method : me) {
System.out.println(method.toString());
}
System.out.println("***********获得公共方法结束************");
Method[] mt = clas.getMethods();
System.out.println("************获取全部方法************");
for (Method method : mt) {
System.out.println(method.toString());
}
System.out.println("************获取全部方法结束************");
System.out.println("***************获得包************");
Package pg = clas.getPackage();
System.out.println(pg.toString()); Annotation[] an = clas.getAnnotations();
System.out.println("************获得全部注释*************");
for (Annotation annotation : an) {
System.out.println(annotation.toString());
}
System.out.println("*******************************");
Class[] cs = clas.getDeclaredClasses();
for (Class class1 : cs) {
System.out.println(class1.toString());
}
System.out.println("***************************");
try {
Class s = Class.forName("cn.happy.demo.Cats$inner");
System.out.println(s.getDeclaringClass());
System.out.println(s.getPackage());
System.out.println(s.getSuperclass());
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
} }

执行结果:

java反射机制基础的更多相关文章

  1. java反射机制(基础版)

    package com.reflect; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import ja ...

  2. java反射机制基础总结

    1反射机制是啥? 反射是运行中的程序检查自己和软件运行环境的能力,它可以根据它发现的进行改变.通俗的讲就是反射可以在运行时根据指定的类名获得类的信息. 2反射机制有啥用? Reflection(反射) ...

  3. JAVA反射机制基础概念

    反射机制:所谓的反射机制就是java语言在运行时拥有一项自观的能力.通过这种能力可以彻底的了解自身的情况为下一步的动作做准备.下面具体介绍一下java的反射机制.这里你将颠覆原来对java的理解. J ...

  4. java基础知识(十一)java反射机制(上)

    java.lang.Class类详解 java Class类详解 一.class类 Class类是java语言定义的特定类的实现,在java中每个类都有一个相应的Class对象,以便java程序运行时 ...

  5. 【java基础】Java反射机制

    一.预先需要掌握的知识(java虚拟机)  1)java虚拟机的方法区:  java虚拟机有一个运行时数据区,这个数据区又被分为方法区,堆区和栈区,我们这里需要了解的主要是方法区.方法区的主要作用是存 ...

  6. Java基础学习总结(75)——Java反射机制及应用场景

    什么是Java反射机制? JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法:这种动态获取的以及动态调用对象的方法的功能称为 ...

  7. 夯实Java基础(二十一)——Java反射机制

    1.反射机制概述 Java反射机制是指程序在运行状态中,对于任何一个类,我们都能够知道这个类的所有属性和方法(包括private.protected等).对于任何一个对象,我们都能够对它的属性和方法进 ...

  8. Java 基础之详解 Java 反射机制

    一.什么是 Java 的反射机制?   反射(Reflection)是Java的高级特性之一,是框架实现的基础,定义:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法: ...

  9. java基础知识(十一)java反射机制(下)

    1.什么是反射机制? java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,对于任意一个对象都能够调用他的属性和方法,这种动态获取属性和方法的功能称为java的反射机制. ...

随机推荐

  1. python3 HTMLTestRunner.py

    """ A TestRunner for use with the Python unit testing framework. It generates a HTML ...

  2. python unittest套件,修改为失败重新执行

    #套件,修改为失败重新执行 import time import unittest from unittest.suite import _isnotsuite class Suit(unittest ...

  3. ajax beforeSend 写的显示隐藏代码不执行

    ajax如果要写像下方格式 $.ajax({ url: ajaxurl, type: 'POST', dataType: 'json', async:true, data: { }, beforeSe ...

  4. unzip文件解压

    1.记录下,遇到.zip的安装包,指定解压到某个地方 格式:unzip      压缩包名.zip  -d   存放路径  

  5. Eciplce ALT+/失效的解决方法

    最近公司电脑上的Eclipse没有了自动提示功能,也不是全部不提示,大多数情况下按下“alt+/”键还会产生提示,但是当我在java项目中邪main方法和syso的时候,“alt+/”则会失效,今天在 ...

  6. fcagte.exe应用程序错误

    原文:What is Fcagte.exe and How To Fix It? Overview of Fcagte.exe What Is Fcagte.exe? Fcagte.exe is a ...

  7. 網管利器!開源管理系統-LibreNMS

    https://www.4rbj4.com/442 https://www.ichiayi.com/wiki/tech/librenms

  8. Elasticsearch集群

    详细Elasticsearch安装: https://www.cnblogs.com/littlehb/p/8406378.html 安装之前需先优化内核: https://www.cnblogs.c ...

  9. 一起学Hive——详解四种导入数据的方式

    在使用Hive的过程中,导入数据是必不可少的步骤,不同的数据导入方式效率也不一样,本文总结Hive四种不同的数据导入方式: 从本地文件系统导入数据 从HDFS中导入数据 从其他的Hive表中导入数据 ...

  10. WPF中datagrid不显示滚动条问题

    WPF中DataGrid是自带滚动条的,当内容显示不下时可以使用滚动条显示.但是,开发中遇到了DataGrid一直不显示滚动条.之前也曾遇到过同类问题,再次经过查找,发现是StackPanel的原因, ...