首页 > 其他分享 >12 获取类运行时的结构

12 获取类运行时的结构

时间:2023-09-13 20:13:25浏览次数:42  
标签:12 int age System 获取 println c1 运行 out

package annotate;

import java.io.File;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;

public class Test12 {
    public static void main(String[] args) throws Exception {
        Class c1= Body.class;

        // 获得类的名字
        System.out.println(c1.getName());        // 包名+类名
        System.out.println(c1.getSimpleName()+"====================================");  // 类名

        // 获得全部的属性
              // 获得本类的所有属性;files=c1.getFields():获得本类及父类的所有属性
        Field[] files=c1.getDeclaredFields();  // Fields
        for (Field field:files){
            System.out.println(field);
        }
        // 获得指定的的属性
        Field name=c1.getDeclaredField("name"); // Field
        System.out.println(name);
        System.out.println("==========================================================================");

        // 获得全部的方法
             //获得本类的所有方法;c1.getMethods():获得本类及父类的所有方法
        Method[] methods= c1.getDeclaredMethods();
        for (Method method:methods){
            System.out.println(method);
        }
        System.out.println("=================================");
        // 获得指定的的方法
        Method method= c1.getDeclaredMethod("getAge");
        System.out.println(method);
        Method method2= c1.getDeclaredMethod("setAge", int.class);
        System.out.println(method2);
        System.out.println("=========================================================================");

        // 获得全部的构造器
        Constructor[] constructors=c1.getDeclaredConstructors();
        for (Constructor constructor : constructors) {
            System.out.println(constructor);
        }
        // 获得指定的构造器
        Constructor constructor=c1.getDeclaredConstructor(int.class,int.class,String.class);
        System.out.println(constructor);
    }
}

class Body{
    private int age,id;
    String name;

    public Body(){}
    public Body(int age, int id, String name) {
        this.age = age;
        this.id = id;
        this.name = name;
    }

    public int getAge(){
        return age;
    }
    private void setAge(int age){
        this.age=age;
    }
    public void say(){}
    public void run(){}

}

标签:12,int,age,System,获取,println,c1,运行,out
From: https://www.cnblogs.com/zhanjianhai/p/17700596.html

相关文章

  • 9.12 每日总结
    今天满课,上午上了大型数据库应用技术,下午上了.net和软件开发案例分析;从中学到了一些知识,不过这周刚刚正式开课大家都刚刚退补选完成,第一节课的内容相对都不是那么多,但是依然很有价值;晚上抽出时间看了看springboot的相关知识,我决定花费一到两周的时间学习springboot的知识;今天的......
  • php获取百度真实来源URL(baidu.com/link?url=)
    有时候我们可能会因为某些原因,在不点击百度链接的情况下,获得来源网址真实地址,使用以下方法即可获得。 如上图所示,URL链接为:https://www.baidu.com/link?url=G-zVzAOV_WhO51JGmRbzzoflu9U1WUJOi25-pTad-x1RKXweAHRHIBpHhOtfyH9JeJCn_GZp9jDYblrtxMat3q&wd=&eqid=86f100e5000038e......
  • 获取excel用例数据
     #获取excel用例数据defget_case_data():case_path=os.path.join(os.path.dirname(__file__),r'files\apiCase.xls')book=xlrd.open_workbook(case_path)sheet=book.sheet_by_name('sheet1名字')#excel标签名case=[]fori......
  • 9.12
    今天数据结构深入学了顺序和链表,发现我之前的链表一直少着一个头节点。晚上学了学新媒体用户分析,学会了几种调查方法。比如诱导性调查:你是否认为世界应该阻止日本排放核污水。先不论答案,你脑海中已经形成了日本污染全世界的印象。事实如此。我们确实应该抵制。......
  • c# 获取本机ip地址的方法
    1publicvoidGetNativeIp()2{3IPHostEntryhostEntry=Dns.GetHostEntry(Dns.GetHostName());4foreach(varipinhostEntry.AddressList)5{6if(ip.AddressFamily==AddressFamily.I......
  • macOS Monterey 12.6.9 (21G726) 正式版发布,ISO、IPSW、PKG 下载
    macOSMonterey12.6.9(21G726)正式版发布,ISO、IPSW、PKG下载本站下载的macOS软件包,既可以拖拽到Applications(应用程序)下直接安装,也可以制作启动U盘安装,或者在虚拟机中启动安装。另外也支持在Windows和Linux中创建可引导介质。2023年9月12日,Apple为macOS和......
  • macOS Monterey 12.6.9 (21G726) Boot ISO 原版可引导镜像
    macOSMonterey12.6.9(21G726)BootISO原版可引导镜像本站下载的macOS软件包,既可以拖拽到Applications(应用程序)下直接安装,也可以制作启动U盘安装,或者在虚拟机中启动安装。另外也支持在Windows和Linux中创建可引导介质。2023年9月12日,Apple为macOS和iOS等......
  • Windows使用任务计划程序创建定时运行Python脚本
    最近有需求需要每天定时运行python程序,了解了一些方法。目前觉得Windows系统最简单的方法就是设置任务计划程序定时运行。在Windows中,任务计划程序(TaskScheduler)是一个持久的服务,通常不会因为计算机的关机或重启而停止。一旦你成功创建并配置了定时任务,它将按照你设置的触发条......
  • 9.13补9.12没保存。。。
     HTML(HyperTextMarkupLanguage):超文本标记语言超文本:超越了文本的限制,比普通文本更强大。除了文字信息,还可以定义图片、音频、视频等内容标记语言:由标签构成的语言 HTML标签都是预定义好的。例如:使用<a>展示超链接,使用<img>展示图片,<video>展示视频HTML代码直接在......
  • JavaEE核心____Request获取的基本路径结果
    假定你的工程名称为projects,你在浏览器中输入请求路径:http://127.0.0.1:8080/taobao/user/userMain.jsp则执行下面向行代码后打印出如下结果:1、System.out.println(request.getContextPath());打印结果:/taobao2、System.out.println(request.getServletPath());打印结果:/u......