java 反射简单运用

TDISP(TEE Device Interface Security Protocol)软件操作流程 / 1. SPDM会话相关定义(🔶1-37、🔶1-187)// SPDM会话ID// AES-256-GCM加密密钥(TDISP要求)// 初始向量// 会话是否激活// 2. IDE流配置(🔶1-52、🔶1-625)// IDE流ID// 4个子流的AES密钥(覆盖所有子流类型)// 密钥是否已配置// 3. TDI状态与配置(🔶1-207、🔶1-210)TDI_CONFIG_UNLOCKED = 0, // 初始配置态。 阅读详情
  
  
  
0基础
Method getDeclaredMethod(String name, Class… parameterTypes)
          返回一个 Method 对象,该对象反映此Class 对象所表示的类或接口的指定已声明方法。
(该类声明的所有方法的单个,name:方法名,parameterTypes:参数类型.Class) 
Method[] getDeclaredMethods() 
          返回 Method 对象的一个数组,这些对象反映此 Class 对象表示的类或接口声明的所有方法,包括公共、保护、默认(包)访问和私有方法,但不包括继承的方法。 
Method getMethod(String name, Class… parameterTypes) 
          返回一个 Method 对象,它反映此 Class 对象所表示的类或接口的指定公共成员方法。 
Method[] getMethods() 
          返回一个包含某些 Method 对象的数组,这些对象反映此 Class 对象所表示的类或接口(包括那些由该类或接口声明的以及从超类和超接口继承的那些的类或接口)的公共 member 方法。 
getDeclaredField(String name) 
          返回一个 Field 对象,该对象反映此 Class 对象所表示的类或接口的指定已声明字段。
(该类声明所有属性,不包括父类) 
Field[] getDeclaredFields() 
          返回 Field 对象的一个数组,这些对象反映此 Class 对象所表示的类或接口所声明的所有字段,包括公共、保护、默认(包)访问和私有字段,但不包括继承的字段。
Field getField(String name)
返回一个Field对象,那些由该类或接口声明的以及从超类和超接口继承的那些的类或接口)的公共 member 属性。
Field[] getFields()
返回一个Field对象数组,那些由该类或接口声明的以及从超类和超接口继承的那些的类或接口)的公共 member 属性。

1.Bean类型
importandroid.util.Log;

/**
* Created by : Sclgxt
* Description:
* on : 2017/11/22 0022.
*/

public classBean {
public staticString INFO ="this is a bean";
privateString message;
privateString id;
publicString MESSAGE = "this is a message";

publicBean() {
}

publicBean(String message, String id) {
this.message= message;
this.id= id;
}

private voidoutMessage() {
Log.i("Bean","Bean getMessage");
}

privateString outMessage(String message) {
Log.i("Bean","Bean getMessage:" + message);
return"over";
}

publicString outMessage(String id, String message) {
Log.i("Bean","Bean getMessage:id is "+ id + ";message is " + message);
return"over";
}

publicString getMessage() {
returnmessage;
}

public voidsetMessage(String message) {
this.message= message;
}

publicString getId() {
returnid;
}

public voidsetId(String id) {
this.id= id;
}
2.运用
2.1反射构造方法构造对象
private voidrefeflectConstructorMethod(TextView textView) {
try{
Class c = Class.forName("sclgxt.modeapplication.JavaReflect.Bean");
Constructor constructor = c.getConstructor(String.class, String.class);
Bean bean = (Bean) constructor.newInstance("1234","Bean two params");
Log.i("Bean","" + bean.getId() + "" + bean.getMessage());
} catch (ClassNotFoundException e) {
e.printStackTrace();
Log.i("Bean","ClassNotFoundException");
} catch (NoSuchMethodException e) {
e.printStackTrace();
Log.i("Bean","NoSuchMethodException");
} catch (IllegalAccessException e) {
e.printStackTrace();
Log.i("Bean","IllegalAccessException");
} catch (InstantiationException e) {
e.printStackTrace();
Log.i("Bean","InstantiationException");
} catch (InvocationTargetException e) {
e.printStackTrace();
Log.i("Bean","InvocationTargetException");
}
}
2.2反射私有方法并调用
private voidreflectPrivateMethod() {
try{
Class c = Class.forName("sclgxt.modeapplication.JavaReflect.Bean");
Object o = c.newInstance();
Method method = c.getDeclaredMethod("outMessage");
method.setAccessible(true);//作用:让私有方法得以调用,如果是共有的则不必设置
method.invoke(o);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
2.3 反射共有方法并调用
private voidreflectPublicMethod() {
try{
Class c = Class.forName("sclgxt.modeapplication.JavaReflect.Bean");
Object o = c.newInstance();
Method method = c.getDeclaredMethod("outMessage", String.class, String.class);
String out = (String) method.invoke(o,"123", "this is 456");
Log.i("Bean","" + out);
} catch (Exception e) {

}
}
2.4 反射私有属性并调用
private voidreflectPrivateField() {
try{
Class c = Class.forName("sclgxt.modeapplication.JavaReflect.Bean");
Field field = c.getDeclaredField("id");
Object o = c.newInstance();
field.setAccessible(true);//让私有属性得以访问,如果是共有的则不必设置
field.set(o, "this is id");
Method method = c.getDeclaredMethod("getId");
method.setAccessible(true);//让私有方法得以访问,如果是共有的则不必设置
String id = (String) method.invoke(o);
Log.i("Bean","reflectField: " + id);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
上、下拉电阻(定义、强弱上拉、常见作用、吸电流、拉电流、灌电流) 1.上、下拉电阻定义 上拉电阻是把一个信号通过一个电阻接到电源(Vcc),下拉电阻是一个信号通过一个电阻接到地(GND)。 2.强上拉、弱上拉 强上拉、弱上拉的强弱只是上拉电阻的阻值不同,没有什么严格区分。例如:50Ω上拉,一般成为强上拉;100kΩ上拉则称为弱上拉。下拉也是一样的。强拉电阻的极端就是0Ω电阻,即将信号线直接与电源或低相连接。 3.上、下拉电阻的作用 因为上下拉电阻的作用概念很宽泛,不用领域的使用方法也不同,常见使用方法整理如下: ... 阅读详情

相关推荐

开源TMS系统cortex-tms私有化部署与二次开发实战指南

运输管理系统(TMS)是现代物流数字化的核心组件,它通过将线下零散的物流操作转化为线上标准化、可追溯的数据流,实现订单、调度、跟踪与结算的全流程管理。其技术原理通常基于微服务架构,采用Spring Boot、Vue.js等成熟技术栈构建,确保系统的稳定性和可扩展性。TMS的技术价值在于显著提升物流企业的运营效率、降低成本并增强过程可控性,尤其适用于中小型物流企业实现从手工管理到系统化管理的跨越。在应用场景上,TMS广泛应用于车队管理、订单跟踪和财务结算等环节。本文聚焦于开源TMS项目cortex-tms,深

weixin_42523907的博客 746

Java如何访问private变量

大家都知道private变量是无法访问的,一编译就报错根本无法访问啊。本文教你如何破解这种限制。 实现的原理是利用了Java的反射机制。 首先定义一个最简单的类,只有一个私有变量和一个公开的方法。代码如下: class Foo { private String message = "This is a Foo."; public ...

weixin_30325971的博客 308

BepInEx插件开发实战:用Visual Studio快速创建你的第一个Unity Mod(2024新版)

本文是2024年新版BepInEx插件开发实战指南,详细讲解如何使用Visual Studio快速创建你的第一个Unity Mod。内容涵盖专业开发环境搭建、插件生命周期解析、利用HarmonyX进行游戏代码注入、实现实时调试与热重载技巧,以及项目配置与打包发布全流程,助你从Mod使用者转变为创造者。

weixin_29002595的博客 340

Java学习笔记——2

JavaBean 所谓Javabean,是指符合如下标准的Java类 1.类是公共的(public) 2.有一个无参的公共的构造器 3.有属性,且有对应的get\set方法 this关键字 1.在方法内部使用,即这个方法所属对象的引用 public void setId(int id){ this.id = id; //this指代当前的对象,等号前边的id是当前对象id,后边的id是形参; } 2.在构造器内部使用,表示该构造器正在初始化的对象(降低代码冗余) class test{ priva

weixin_40386009的博客 393

LTSPICE使用教程:导入第三方库模型进行仿真

LTSPICE导入第三方SPICE模型进行仿真,以英飞凌的第三方.lib模型为实例进行详解

焊武大帝的专栏 3万+

【机械视觉】C#+VisionPro实战:位深图(CogImage8Grey)与Bitmap互转技巧及工业检测应用

本文详细介绍了在工业检测中如何使用C#和VisionPro实现位深图(CogImage8Grey)与Bitmap的高效互转技巧。通过实战代码示例和工业应用案例,帮助开发者解决图像处理中的常见问题,提升检测精度和系统性能,适用于半导体、汽车零部件等高精度检测场景。

weixin_29250573的博客 186

Java 简单实现对象数据去重处理

对于数据库去重相当简单,只需要在查询语句上添加DISTINCT关键字就可以搞定,但是针对Nosql数据库而言DISTINCT未必支持,这时候我们需要自己手动实现。这里有一个数据不重复的最简单的原理:字符串的hashcode比较,当然记录的唯一指标不是ID,而是数据本身,我们去掉ID再来比较是否重复就可以了。Java 模拟代码:package com.boonya.mongo.client; im...

纸上得来终觉浅,绝知此事要躬行 6590

爬虫Incapsula reese84加密案例:Etihad航空(纯算法)

爬虫Incapsula reese84加密案例:Etihad航空,本文就不再讲解如何找加密参数、定位加密参数,以及分析加密的一个过程。就直接从扣算法开始,扣算法前先看之前讲解的加密函数生成的过程,文章会一个函数一个函数的讲解扣算法。fiddler根据规则替换本地文件。调试过程中遇到部分环境不一样是正常的,具体还要根据自己调试的js为准,就像之前补环境时是有二十一个循环,这次扣算法多出一个循环,不过大部分环境是一样的第一个函数:通过document.addEventListener添加了很多事件。

老衲爱洗头的博客 1994

java爬虫学习_java网络爬虫基础学习(四)(示例代码)

jsoup的使用jsoup介绍jsoup是一款Java的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,css以及类似于Jquery的操作方法来取出和操作数据。主要功能从一个URL,文件或字符串中解析出HTML。使用DOM或css选择器来查找、取出数据。可操作HTML元素、属性、文本。直接请求URL一开始直接使用jsonp的connect方法...

weixin_35761085的博客 138

鱼鹰优化算法(OOA)详解:从猛禽捕食智能到优化算法实现

鱼鹰优化算法(Osprey Optimization Algorithm, OOA)是2023年提出的一种新型元启发式优化算法,灵感来源于鱼鹰(一种中型猛禽)高效的捕食策略。算法模拟了鱼鹰从空中识别水下鱼类位置并俯冲捕食,然后将捕获的鱼带至安全位置享用的全过程,以此抽象出全局探索和局部开发两个核心阶段。OOA算法具有参数少、结构简单、收敛速度快、全局寻优能力强等特点。自提出以来,已在函数优化、机器学习参数调优(如CatBoost模型)、路径规划等多个领域展现出良好性能,为解决复杂优化问题提供了新的有效工具。

qq_42212808的博客 273

使用 Python 爬虫获取中国证券市场公司公告数据

本文详细介绍了如何使用 Python 爬虫技术从中国证券市场(如巨潮资讯网)爬取公司公告数据。通过分析网页结构,编写爬虫脚本,抓取并存储公告信息,我们实现了从网页抓取数据的全过程。此外,本文还展示了如何应对反爬虫机制,并介绍了数据分析与可视化的基本方法。未来,我们可以通过机器学习等技术进一步挖掘公告中的潜在信息,例如,通过情感分析对公告内容进行情绪分类,或者预测某些公告类型对股市走势的影响等。希望本文能帮助你理解如何使用 Python 爬虫技术获取和处理证券市场的数据,并为你的数据分析项目提供帮助。

2201_76125261的博客 1888

Java第二次实训课堂

今天我们进行了Java的第二次实训课,今天的代码量较大,需要操作和理解的内容更多,比较复杂,当然我们课堂中的收获也更多。 首先呢,我们需要创建Java项目,建立学生信息管理系统的主要框架。 并 添加MYSQL的驱动包,添加图片以及添加帮助文档。 主要框架的完成,我们就可以开始代码了。 我们需要创建实体类项目。 分为四段代码。 创建学校实体类: package net.liangyi.student.bean; import java.util.Date; /** 功能:学校实体类 作者:梁怡 日期:

YiLIANGR的博客 346

从HCI层浅析LE Audio通话建立流程

本文分析了BLE AUDIO通话协议建立的全过程。当手机来电时,系统会通过CCP EATT链路通知耳机准备通话,并断开原有音乐CIS连接。随后建立通话专用的CIG组,其参数设置(如MAX SDU SIZE=80、RTN=2)与音乐场景明显不同,更注重通话的实时性。文中详细描述了设置ISO数据路径、启用ASE、建立CIS连接等关键步骤,特别指出通话采用Conversational音频上下文类型。最后解析了ISO数据包参数含义,展示了10ms周期、32kHz采样率等通话特性参数。整个过程体现了BLE AUDIO

十多年蓝牙协议软件开发,擅长蓝牙协议分析 1863

java反射简单总结及运用

一、开场白 在学习java过程中,反射在java基础阶段就有接触,不过,当时也是没有理解,只是大概的了解了一下。反射也没有实际使用过,后来的学习了框架,听说很多是反射实现的。感觉反射是大神们玩的东西,作为小白就总结一点反射的基本用法吧,可能对以后的学习会有所帮助。 记住:Class类,Field类,Method类,Constructor类都是在运行期执行的 可以绕过编译期间 二、得到Clas...

m0_37531231的博客 203

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Java反射的原理及简单运用

​ JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。.java文件经过虚拟机编译成.class文件,也叫字节码文件。Java在将.class字节码文件载入时,JVM将产生一个java.lang.Class对象代表该.class字节码文件,从该Class对象中可以获得类的许多基本信息,这就是反射机制。

qq_63839698的博客 849

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

java,简单的反射运用

简单的反射理解和运用

weixin_45920642的博客 265

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Java基础反射简单运用

Java 基础之反射简单运用 反射概念:反射即对象中域,方法,构造器等权限的转移,转移给相应的反射类来处理。 一.Class类 Java中的程序运行时,是要从含有main方法的类开始编译,由于可能该主类中还依赖了其它类,就必须先加载其它依赖的类,所有编译过的类生成的class字节码文件都是Class类的一个具体实例。 1.获取类Class对象 Class<classname> c=classname.class; Class<?> c1=Class.forName("类路径名")

qq_44347658的博客 174

Java中的反射以及简单运用(原理+例子)

Java多线程总结内容1. 为什么要使用反射2. 反射的概念3. Java反射加载过程4. 字节码对象理解5. 获取字节码对象(.class)的三种方式6. 反射常用API总结 总结内容 1. 为什么要使用反射 Java属于先编译再运行的语言,程序中对象的类型在编译期就确定下来了,而当程序在运行时可能需要动态加载某些类,这些类因为之前用不到,所以没有被加载到JVM。通过反射,可以在运行时动态地创建对象并调用其属性,不需要提前在编译期知道运行的对象是谁。 2. 反射的概念 Java反射机制的核心是在程序运行时

zzvar的博客 2129

JAVA 反射机制简单运用

一切操作都是将使用Object完成,类、数组的引用都是用Object接收public final class ClassInstances of the class Class represent classes and interfaces in a running Java application. An enum is a kind of class and an annotation is

marjey_lee的博客 320

java-list列表添加不通元素;java反射的简单运用

java伪泛型的特性, 通过反射往Integer类型的list添加string public class Test { public static void main(String[] args) throws Exception { ArrayList<Integer> list = new ArrayList<Integer>(); list.add(1); //这样调用 add 方法只能存储整形,因为泛型类型的实例为 Intege

qq_34462698的博客 3517

Java运用注解反射编写简单测试框架

测试一个计算器类,把异常类型次数其他异常信息自动生成BUG文件 /** * 计算器类 */ public class Calculator { //加法 @Check public void add(){ System.out.println("1+0="+(1+0)); } //减法 @Check public void sub(){ System.out.println("1-0="+(1-0));

weixin_46235428的博客 332

JAVA的泛型特性和反射机制在泛型中的简单运用

1、泛型的基本概念: 泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 java语言引入泛型的好处是安全简单。 没有泛型的情况下,通过对类型Object的引用来实现参数的“任意化”、“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际操作类型可以预先知道的情况下进行的,对于

zyj0813的博客 292

java的简单反射运用实例(读取csv文件映射为对象)

private Map> loadCSVObject( String objectName, String csvFileNodeName) throws Exception { String fieldArray[] = null; Map> map = new HashMap>(); InputS

adobeid的专栏 2136

简单的封装了一个将java bean生成xml的一个工具类,运用了反射和泛型,重用性高。

package com.example.dbutil.utils; import java.io.StringWriter; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.List; import javax.xml.parsers.DocumentBuilder; impor

kang2618的专栏 1159

java注解例子_JAVA注解简单例子

import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;import java.lang.reflect.Method;/*** Projec...

weixin_29018419的博客 188

java反射学习--操作私有成员

反射,reflection,听其名就像照镜子一样,可以看见自己也可以看见别人的每一部分。在java语言中这是一个很重要的特性。 反射是java语言的一个特性,它允程序在运行时(注意不是编译的时候)来进行自我检查并且对内部的成员进行操作。 java中有一个类很特殊,就是Class类,很多朋友在写程序的时候有用过比如Hello.class来查看类型信息,大家就可以把它理解为封装了类的信息,很多

粉末无颜的专栏 2330
上一篇: Recyclerview adapter.notify几个方法内存占用分析
下一篇: Java String =“ ”和 new String的区别详解
sclgxt
博客等级 码龄12年 3粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值