getField和getDeclaredField的区别

别再傻傻分不清了!Java反射getFields和getDeclaredFields的实战避坑指南 本文深入解析Java反射中getFields与getDeclaredFields的核心差异及实战避坑指南。通过典型误用案例、框架集成实践和性能优化方案,帮助开发者正确选择反射方法,避免常见陷阱,提升代码质量与安全性。特别适用于Spring、JPA等框架下的字段反射操作场景。 阅读详情

这两个方法都是用于获取字段


1.getField 只能获取public的,包括从父类继承来的字段。
2.getDeclaredField 可以获取本类所有的字段,包括private的,但是不能获取继承来的字段。 (注: 这里只能获取到private的字段,但并不能访问该private字段的值,除非加上setAccessible(true))

 

public class DemoTest {
    @Test
    public void  testField2() throws Exception {
        UserController userController = new UserController();
        Class<? extends UserController> clazz = userController.getClass();
       /* Field[] declaredFields = clazz.getDeclaredFields();
        Arrays.asList(declaredFields).stream().forEach(System.out :: println);*/
        UserService userService = new UserService();
        Field userServiceField = clazz.getDeclaredField("userService");
        userServiceField.setAccessible(true);
        //userServiceField.set(userController,userService);
        String name = userServiceField.getName();
        name = name.substring(0,1).toUpperCase()+name.substring(1,name.length());
        String setMethodName = "set" + name;
        Method method = clazz.getMethod(setMethodName, UserService.class);
        method.invoke(userController,userService);
        System.out.println(userController.getUserService());


    }
}
public class UserController {
    
    private UserService userService;

    public UserService getUserService() {
        return userService;
    }

    public void setUserService(UserService userService) {
        this.userService = userService;
    }
}
public class UserService {
}

机器视觉检测到底怎么做,经验分享 笔者做机器视觉检测已经有五六年了,也算是对机器视觉的检测技术有了一定的掌握。总的来说,基于机器视觉的检测技术主要包含三个部分:视觉采集模块、后台分析模块和动作决策模块。这几个分类,跟教科书上的有较大差异,很多同学觉得我在杜撰。笔者也不作反驳,因为这是笔者这些年工作经验的总结,自然区别于教科书。下面我们分开来讲这几个模块,同时会把笔者之前的论文做个推荐总结。 所有文章均可在博主的主页中找到,若无法找到,可以用搜索工具。博主的主页: https://blog.youkuaiyun.com/Aoulun 第.. 阅读详情

相关推荐

AI编码的“黑箱危机”终结者:OpenSpec如何让你的代码从“猜谜”变“契约”?

OpenSpec的真正价值,在于它将AI编码从"经验驱动"推向"契约驱动"——当人类与AI对"目标是什么"达成显式共识,编码就从"猜谜游戏"变成了"工程实现"。这种转变不仅提升效率,更重塑了开发者与AI的关系:AI从"替代者"回归"协作者",而人类则聚焦于"定义正确的事"而非"正确地做事"。对于开发者,OpenSpec提供了驾驭AI的缰绳;对于团队,它构建了协作的基石;对于行业,它预示着AI编码工业化的开端。

haolove527的专栏 1348

Java反射 getFields和 getDeclaredFields 方法的区别

Java反射 getFields和 getDeclaredFields 方法的区别 一、前言 Java反射中,获取一个类中的属性(字段),有2种方法分别是:getFields和 getDeclaredFields , 这2个方法后者比前者多了一个 Declared ,那么这2个方法有啥区别呢? 二、结论 1、getFields:获取当前类或父类或父接口的 public 修饰的字段。 2、getDeclaredFields:获取当前类的所有字段...

HaHa_Sir的博客 1万+

docker安装fastdfs+nginx配置

docker安装fastdfs+nginx,实现图片或文件的上传与下载

weixin_47325126的博客 2191

getFields()与getDeclaredFields()区别

getFields()与getDeclaredFields()区别:getFields()只能访问类中声明为公有的字段,私有的字段它无法访问,能访问从其它类继承来的公有方法.getDeclaredFields()能访问类中所有的字段,与public,private,protect无关,不能访问从其它类继承来的方法   * getMethods()与getDeclaredMethods

习惯有你&的博客 1944

ROS专栏—基于STM32F103的INA219电源数据采集

文章主要记录了stm32f103对ina219的数据采集

热爱生活、奋斗前行 2353

为什么 ADT 在 SAP BTP ABAP environment 里认证成功却无法登录 Service Instance:根因拆解与一站式修复路线

摘要 ADT报错"认证成功但Service Instance登录失败"通常源于ABAP租户的权限或用户映射问题,而非账号密码错误。常见原因包括:1) ABAP租户内未创建对应业务用户;2) 业务用户缺少开发角色(如SAP_BR_DEVELOPER);3) BTP角色集合未分配或IdP组映射缺失;4) 浏览器会话混淆身份;5) 连接了非开发租户(如Customizing Tenant);6) 实例休眠导致误判。 解决方法:检查ABAP业务用户及角色分配,确认BTP角色集合映射,使用隐身窗口

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 253

ThinkPHP之getfield详解

getField方法是ThinkPHP中用来获取字段值的方法,区别于select和find方法,通常仅用于获取个别字段的值。但是事实上并没有那么简单,现将该方法的用法总结如下: 1.获取某个字段值 这个是getField方法最基本的用法,用于获取符合条件的某个字段值。 ? 1 2 3 $User = M("User"); // 实例化U

猴子年华 · 软件工程老师 & 程序员,专注AI、 Python/Node.js、GEO,每日分享技术底层原理、AI 效率工具,用技术帮你提效变强。💪 1356

上午题目复习ing

无线局域网,11b是常用的,2.4ghz,后来改进5ghz,有些字段可以工作在5g的字段802.11/11a/1h/11n,,,,,11b和11g还在2.4ghz工作。数据链路层 传输服务,数据链路维护,差错控制,arp ip到mac,rarp反过来,token ring,x.25,atm,ethernet,蓝牙10m,简化因特网,分散式网,快调频,短包,点对点,点多多点,2.4ghz,最高速率1mb/s。gsm:是时分多址,900m-1800m,微蜂窝是市区,微微风是室内,伞是盲点,

weixin_47120900的博客 893

java getfield_Java类类getField()方法及示例

java getfield 类的类getField()方法 (Class class getField() method) getField() method is available in java.lang package. getField()方法在java.lang包中可用。 getField() method is used to return a Field objects that ...

cumtv80668的专栏 7042

晶体管-二极管三极管MOS管选型参数总结

二极管三极管和MOS管,是电路中常用的控制电流电压的基本电子元器件。电路世界中晶体管的选型,需要考虑的参数多种多样,这些参数的选择会直接影响到电路的性能、稳定性、成本等多个方面。本文对二极管三极管和MOS管的选型参数进行详细介绍并总结。

fydar的博客 884

【PySide6拓展】初识QChart图表

在 PySide6 中,QtCharts模块提供了一系列强大的类,用于创建和管理图表。QChart是这个模块的核心类,它可以帮助开发者轻松地实现数据的可视化。本篇文章将介绍如何使用 PySide6 的QtCharts模块,并通过一个简单的示例教你如何快速引入QChart。QChart折线图柱状图饼图区域图它能够直观地呈现数据,同时支持交互功能,如缩放、拖拽和工具提示等。通过引入QChart,我们可以轻松实现数据的可视化,提升应用的交互性和用户体验。结合其他QtCharts。

m0_62599305的博客 821

反射机制:getDeclaredField和getField的区别

在做后台开发时实体的固定字段一般会抽取为一个父类,其他类继承该父类,例如主键字段,会放到一个父类中(IdEntity),其他类继承该类,但是我们在操作时操作的是子类,在通过子类获取父类属性是getDeclaredField和getField是不一样的,简单说 getDeclaredFiled 仅能获取类本身的属性成员(包括私有、共有、保护)  getField 仅能获取类(及其父类可以自己测试...

在路上的羊先森 6万+

Python爬虫实战:深度解析携程/飞猪酒店评论API与大数据采集

本文详细介绍了如何通过Python爬虫技术获取携程和飞猪平台的酒店评论数据。我们涵盖了从API分析、反爬虫对策到数据存储和处理的完整流程。API逆向分析:通过浏览器开发者工具发现和分析API接口反爬虫对策:使用请求头随机化、IP代理、浏览器自动化等技术异步处理:使用asyncio提高爬取效率数据质量:实现数据清洗和质量检查机制系统架构:构建可扩展的分布式爬虫系统未来改进方向:机器学习识别验证码分布式爬虫架构实时数据流处理更智能的反反爬虫策略。

2201_76125261的博客 600

getField()与getDeclaredField()的区别

Java的反射机制中,用Class的getField(String name)或getDelaredField(String name)可以得到目标类的指定属性,返回类型是Field。 在看它们的区别之前先看下它们的源码: /** * Returns a {@code Field} object that reflects the specified public member * field of the class or interface represented by this {

六月的尾巴 2013

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Java反射 getDeclaredField()和getField()方法的区别

import java.lang.reflect.Field; class Father{ public String fname; } public class Test extends Father{ private String name ; public Integer age ; protected String sex; public static void main(String[] args) throws Exception {

凌霄 631

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Unsafe类 getField 与 getDeclaredField 区别

Unsafe类 getField 与 getDeclaredField 区别

weixin_52767086的博客 281

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

java 反射 field get方法_JAVA学习之反射getDeclaredField()方法与getField()方法的区别

在使用反射的时候,常用到的几个方法老是傻傻的分不清楚是干吗的,功能差不多的啊,比如:Class.getFields(), Class.getField(String), Class.getDeclaredFields(), Class.getDeclaredField(String)和Class.getMethods(), Class.getMethod(String, Class[]), Cla...

weixin_35343148的博客 1717

java反射中getDeclaredField和getField的区别

getDeclaredField是可以获取一个类的所有字段.  getField只能获取类的public 字段.  Java代码   public Field getDeclaredField(String name)          throws NoSuchFieldException, SecurityException {          checkM

晗的专栏 1万+

getDeclaredField和getField的区别

getDeclaredField是可以获取一个类的所有字段.getField只能获取类的public 字段. 转载于:https://www.cnblogs.com/zzw3014/p/9831562.html

weixin_33778544的博客 464

Java反射之getDeclaredField和getField的区别

getDeclaredField是可以获取一个类的所有字段.  getField只能获取类的public 字段.  public Field getDeclaredField(String name)          throws NoSuchFieldException, SecurityException {          checkMemberAccess(Me

LVXIANGAN的专栏 1万+

java中getfield_Java反射中getDeclaredField和getField的区别

getDeclaredField是可以获取一个类的所有字段.getField只能获取类的public 字段.public Field getDeclaredField(String name)throws NoSuchFieldException, SecurityException {checkMemberAccess(Member.DECLARED, ClassLoader.getCaller...

weixin_28744423的博客 251

java反射getDeclaredFields/getDeclaredField与getFields/getField的区别

如何获取本类(private, default, protected, public)及父类/超类(private, default, protected, public)的所有字段?(2) 在(1)的基础上, 该字段可以是同时被 static, final, volatile, transient 中的一种或几种修饰。(2) 在(1)的基础上, 该字段可以是同时被 static, final, volatile, transient 中的一种或几种修饰。(1) 能且仅能获取到。

yngzh的博客 712

Java反射中getDeclaredField和getField的区别

getDeclaredField是可以获取一个类的所有字段.getField只能获取类的public 字段. public Field getDeclaredField(String name) throws NoSuchFieldException, SecurityException { checkMemberAccess(Member.DEC...

weixin_30595035的博客 402

java反射getDeclaredField和getField的区别

getDeclaredField是可以获取一个类的所有字段. getField只能获取类的public 字段. Java代码   public Field getDeclaredField(String name)         throws NoSuchFieldException, SecurityException {         checkMemberAcc

rookiediary的博客 4064
上一篇: CentOS 7快速开放端口
下一篇: 1.Spring容器初始化过程
满地节操1
博客等级 码龄10年 12粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值