首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

访问其他实体内部的实体方法时出现对象引用错误

对象引用错误(Object reference error)是指在访问其他实体内部的实体方法时出现的错误。这种错误通常发生在编程过程中,当一个对象尝试引用另一个对象的方法或属性时,如果被引用的对象为null或未初始化,就会导致对象引用错误。

对象引用错误可能是由以下几种情况引起的:

  1. 空引用(Null reference):当一个对象为null时,尝试访问其方法或属性就会导致对象引用错误。这通常发生在未正确初始化对象或者对象在某个地方被设置为null的情况下。
  2. 对象生命周期问题:当一个对象已经被销毁或超出其作用域时,尝试访问其方法或属性也会导致对象引用错误。这通常发生在没有正确管理对象的生命周期,或者在异步编程中出现了竞态条件的情况下。
  3. 对象类型不匹配:当一个对象尝试引用另一个对象的方法或属性时,如果两个对象的类型不匹配,就会导致对象引用错误。这通常发生在类型转换错误或者对象类型不一致的情况下。

为了避免对象引用错误,开发人员可以采取以下几种方法:

  1. 空引用检查:在访问对象的方法或属性之前,先检查对象是否为null。可以使用条件语句(如if语句)或者空引用检查运算符(如?.运算符)来进行空引用检查。
  2. 合理管理对象生命周期:确保对象在使用之前正确初始化,并在不再需要时及时销毁。可以使用构造函数、析构函数或者垃圾回收机制来管理对象的生命周期。
  3. 类型检查和类型转换:在引用其他对象的方法或属性之前,先进行类型检查,确保对象的类型匹配。如果需要进行类型转换,可以使用类型转换运算符(如as运算符)或者类型转换函数来进行类型转换。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云函数(云原生):腾讯云函数是一种事件驱动的无服务器计算服务,可帮助开发人员在云端运行代码而无需搭建和管理服务器。详情请参考:腾讯云函数
  • 腾讯云数据库(数据库):腾讯云数据库提供多种数据库服务,包括关系型数据库(如MySQL、SQL Server)、NoSQL数据库(如MongoDB、Redis)等。详情请参考:腾讯云数据库
  • 腾讯云CDN(网络通信):腾讯云CDN是一种内容分发网络服务,可加速网站、应用程序和静态资源的传输,提供更快的访问速度和更好的用户体验。详情请参考:腾讯云CDN
  • 腾讯云安全产品(网络安全):腾讯云提供多种安全产品,包括Web应用防火墙(WAF)、DDoS防护、安全加速等,帮助用户保护云上应用和数据的安全。详情请参考:腾讯云安全产品
  • 腾讯云音视频处理(音视频、多媒体处理):腾讯云音视频处理提供多种音视频处理服务,包括转码、截图、水印、音视频识别等,帮助用户实现音视频文件的处理和分析。详情请参考:腾讯云音视频处理
  • 腾讯云人工智能(人工智能):腾讯云人工智能提供多种人工智能服务,包括图像识别、语音识别、自然语言处理等,帮助用户构建智能化的应用和服务。详情请参考:腾讯云人工智能
  • 腾讯云物联网(物联网):腾讯云物联网提供多种物联网服务,包括设备接入、数据管理、规则引擎等,帮助用户连接、管理和分析物联网设备的数据。详情请参考:腾讯云物联网
  • 腾讯云移动开发(移动开发):腾讯云移动开发提供多种移动开发服务,包括移动应用开发、移动推送、移动测试等,帮助开发人员构建高质量的移动应用。详情请参考:腾讯云移动开发
  • 腾讯云对象存储(存储):腾讯云对象存储是一种高可靠、低成本的云存储服务,可用于存储和管理各种类型的数据,包括图片、音视频、文档等。详情请参考:腾讯云对象存储
  • 腾讯云区块链服务(区块链):腾讯云区块链服务提供一站式区块链解决方案,包括区块链网络搭建、智能合约开发、链上数据存储等,帮助用户快速构建和部署区块链应用。详情请参考:腾讯云区块链服务
  • 腾讯云虚拟专用云(元宇宙):腾讯云虚拟专用云是一种基于云计算和虚拟化技术的云计算资源池,可为用户提供灵活、可扩展的计算、存储和网络资源。详情请参考:腾讯云虚拟专用云
相关搜索:为什么在Linq的Select方法中访问引用实体的属性时,EF Core会自动加载相关实体?循环访问对象时出现的错误尝试访问对象内部的值时出现javascript变量未定义错误?查找实体时出现服务引用错误/Default/18.200.001?wsdl for Acumatica course I300示例实体对象不能被IEntityChangeTracker的多个实例引用-更新标识模型表时实体映射:将两个属性引用到外键时出现的问题Symfony -在实体内部使用访问者设计模式调用正确的服务方法Drupal8-通过$fields访问引用的实体(在节点创建时实现验证)TypeScript -在Jest的mockResolvedValueOnce方法中的实体上出现"not assignable to type never“错误访问其他帐户上传的文件时出现Cloudfront 403错误使用实体框架向PostgreSQL插入数据时出现奇怪的语法错误连接到数据库时出现错误消息“此版本的实体数据源向导仅与实体框架5兼容”MVC错误:访问模型数据时,对象引用未设置为对象的实例聚合物dom-分析对象内部的数组时出现重复错误发送包含2个方法的对象时出现Jquery post错误访问react - OpenWeatherAPI中的JSON对象时出现未定义错误使用实体标尺和ner管道加载预训练的自定义模型时出现空间错误htaccess .php扩展名删除:访问带有尾随斜杠的url时出现内部错误当尝试使用引用访问同级组件的TextInput时,出现“未定义的不是对象”使用'subsetrows‘和'subsetvars’方法时,octave中的tablicious包出现访问错误
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

09小结:封装结果集或实体,有多个对象解决方法

1.封装结果集,有两个对象 1.1.解决方案1 ? 在第一个实体类中定义它不存在那个字段 1.2.解决方案2 ?...设置关联关系: 在第一个实体类中定义它不存在那个字段整个对象(新定义一个类型(对象)) 2.JSP页面跳转时候连接多个属性,第二个和以后需要使用&,而不是? ?...3.封装实体,BeanHandler(*.class) ?...需要数据库属性名与自己封装实体属性名一样, 如果不一样可以用as或者修改实体属性名 4.dao层尽量写最底层代码,不要调用方法 可以在dao层main里面先调用上面的方法进行测试,节约时间...,不必启动tomcat 5.两个对象不能用BeanListHandler(),它只能封装cart,product为null,要使用MapListHandler() MapListHandler()返回值为

1.3K10

DDD领域驱动设计实战-理解聚合(Aggregate)和聚合根(AggregateRoot)

即聚合间通过聚合根ID关联引用,若需要访问其它聚合实体,就要先访问聚合根,再导航到聚合内部实体,外部对象不能直接访问聚合内实体。 2.1 电商案例 典型聚合根:库存、商品、订单等。...4.2 优先小聚合 聚合设计过大,会因为包含过多实体,导致实体间管理复杂,高频操作出现并发冲突或数据库锁,即便能保证事务成功执行,依然有可能限制系统性能和可伸缩性。...优先选用值对象并非意味着聚合就是不变,因为当值对象属性被替换成其他,根实体也就随之改变。...将聚合内部建模成值对象有很多好处: 据所选用持久化机制,值对象可随根实体而序列化,而实体则需单独存储区域并予以跟踪 实体还会带来一些不必要操作,如在使用Hibernate,需对多表联合查询,而对单表读取快得多...在不持有对象引用情况下,不能修改其他聚合,因此可避免在同一事务中修改多个聚合。但这样限制性太强,因为在领域模型中,我们总需要对象之间关联关系来完成任务。对此,又该怎么办呢?

15.3K73
  • DDD领域驱动设计实战-聚合(Aggregate)和聚合根(AggregateRoot)

    1.1 意义 领域模型内实体和值对象好比个体,而能让实体和值对象协同工作组织就是聚合,用来确保这些领域对象在实现共同业务逻辑,能保证数据一致性。...即聚合间通过聚合根ID关联引用,若需要访问其它聚合实体,就要先访问聚合根,再导航到聚合内部实体,外部对象不能直接访问聚合内实体。...,采用用例分析、场景分析和用户旅程分析等方法,通过头脑风暴列出所有可能业务行为和事件,然后找出产生这些行为领域对象,并梳理领域对象之间关系,找出聚合根,找出与聚合根业务紧密关联实体和值对象,再将聚合根...很多情况下建模成实体概念都可重构成值对象。优先选用值对象并非意味着聚合就是不变,因为当值对象属性被替换成其他,根实体也就随之改变。 将聚合内部建模成值对象有很多好处。...在不持有对象引用情况下,不能修改其他聚合,因此我们可以避免在同一个事务中修改多个聚合。但这种方式缺点在于限制性太强,因为在领域模型中我们总需要对象之间关联关系来完成一些任务。

    1.8K30

    java面试知识要点汇总(基础和集合)

    16个字符,当该对象实体存放字符长度大于16实体容量就自动增加。...当该对象实体存放字符序列长度大于size个字符实体容量自动增加,以便存放所增加字符。...如果出现这种错误,除了尽力使程序安全退出外,在其他方面是无能为力 Exception体系包括RuntimeException体系和其他非RuntimeException体系 :① RuntimeException...处理RuntimeException原则是:如果出现RuntimeException,那么一定是程序员错误。例如,可以通过检查数组下标和数组边界来避免数组越界访问异常。...②其他非RuntimeException(IOException等等):这类异常一般是外部错误,例如试图从文件尾后读取数据等,这并不是程序本身错误,而是在应用环境中出现外部错误

    92330

    为什么微服务架构需要聚合

    组中包含业务对象实体。 根。每个聚合会向外部暴露一个实体。聚合外部对象仅可以引用聚合根,不能直接访问其他聚合内部实体。...由于外部只能通过根来访问聚合,因此在聚合内部,只有根才能引用其他实体(非根实体之间不能相互引用)。 聚合根 换句话说,根服务是聚合与外界交互代表,因此应该选择最合适实体作为根。...此外,其他实体通常都是值对象 在确定属于聚合实体,应该查找不变量(管理不同实体交互规则)。我们应该尽量将涉及相同不变量实体归为一组。...当定义领域驱动设计模型,埃文斯(Evans)几乎完全聚焦于聚合,并将其作为不变量事务执行机制。但这种模式(使用一个外部可访问引用来标识实体原子集合)也适用于微服务架构其他方面。...假设我们缓存了一个用户对象,但同时也缓存了独立联系信息和联系信息组,以及用户独立对象字段。最终会需要大量内存来保存这些数据。当缓存了无效数据,可能会出现严重问题。

    1.5K20

    Spring Data JDBC参考文档

    在当前实现中,从聚合根引用实体被 Spring Data JDBC 删除并重新创建。 您可以使用与您工作和设计数据库风格相匹配实现来覆盖存储库方法。 9.3....持久实体 可以使用该CrudRepository.save(…)方法执行保存聚合。如果聚合是新,这将导致聚合根插入,然后是所有直接或间接引用实体插入语句。...如果聚合根不是新,则所有引用实体都会被删除,聚合根会更新,并且所有引用实体都会再次插入。请注意,实例是否为新实例是实例状态一部分。 这种方法有一些明显缺点。...财产人口内部 与我们在对象构造中优化类似,我们也使用 Spring Data 运行时生成访问器类与实体实例进行交互。...该类公开了一个withId(…)用于设置标识符方法,例如,当一个实例插入到数据存储中并生成一个标识符。调用withId(…)创建一个新Person对象

    1.4K30

    C++_引用

    引用 引用特性: 引用在定义就要初始化 一个变量可以被多个引用 一个引用只能由一个实体变量,不能引用多个 引用不能降低实体可执行权限,只能提升或者不变 比如在引用常量时候,常量只有可读权限,没有写权限...引用两种常用方法: 作为参数 作为函数返回值 引用作为参数属于输出型参数 现实编程中有一个函数要返回多个值很普遍 但是一个函数只有一个返回值(return),返回值其实只是用来表示函数执行结果 通常...,将引用作为参数,在函数内更改直接就影响到了引用实体,实现了函数向外输出,实现了”多返回值” 如果一个参数只是输入到函数,在内部改变不会影响外部变量改变就是输入型参数;一个参数在函数内发生改变影响函数外变量改变就是输出型参数...引用在定义必须初始化,指针没有要求 引用在初始化时引用一个实体后,就不能再引用其他实体,而指针可以在任何时候指向任何一个同类型 实体 没有NULL引用,但有NULL指针 在sizeof中含义不同:引用结果为引用类型大小...,但指针始终是地址空间所占字节个数(32位平台下占 4个字节) 引用自加即引用实体增加1,指针自加即指针向后偏移一个类型大小 有多级指针,但是没有多级引用 访问实体方式不同,指针需要显式解引用引用编译器自己处理

    27530

    Domain Driven Design Reference(三)—— 模型驱动设计构建模块

    额外业务逻辑被嵌入在UI部件和数据库脚本行为中。发生这种情况是因为在短期内,这样做是最简单方法。   当与领域相关代码通过如此大量其他代码被扩散,变得非常难以理解和推理。...实体变化历史可以允许访问先前状态,但忽略这些变化含义,以便对信息任何操作都是程序性,并且经常被抛出领域层。   分布式系统中出现了一系列独特但又相关问题。...分布式系统状态在任何时候都不能保持完全一致。我们始终保持聚合内部一致,而异步进行其他更改。当更改在网络节点间传播,可能很难解决无序或来自不同来源多个更新。   ...选择一个实体作为每个聚合根,并允许外部对象仅保留对根引用(对内部成员引用仅在一个操作中返回出去才能使用)。...保持应用程序逻辑专注于模型,委托所有的对象存储和访问给仓储。 工厂   当创建一个完整内部一致聚合或者一个大值对象变得复杂或者显示太多内部结构,工厂提供封装。

    47320

    DDD Command模型

    外部引用仅限于Aggregate一个成员——它被指定为聚合根, 并且,聚合还包含了一组一致性规则被应用于其内部。“       例如,“联系人”聚合可以包含两个实体:联系人和地址。...聚合可以是任何对象,但是对于标识对象本身需要有几条准则, 它必须实现equals和hashCode以确保与其他实例进行唯一性区分; 实现一个提供一致结果toString()方法(相同标识符应该提供一个相等...使用具有业务含义数据作为标识符要小心,他们有随业务变化而变化趋势,导致您很难相应地调整你应用程序。 聚合实现        一个聚合总是通过一个称为聚合根实体访问。...如果具有特定注释private方法出现“未使用私有方法”警告,大多数IDE都可以选择忽略。...注意,一个关于聚合不应该暴露状态常见误解是:聚合中任何实体都不应该含有属性访问方法,不是的。实际上,如果聚合中实体向同一聚合中其他实体暴露状态,则聚合可能会受益匪浅。

    2.5K30

    ⭐️C#零基础到入门 ⭐️| 带你认识编程中—23种设计模式 & 六大设计原则

    享元模式(Flyweight Pattern) 运用共享技术有效地支持大量细粒度对象. 代理模式(Proxy Pattern) 为其他对象提供一个代理以控制对这个对象访问。 ---- ????...迭代器模式(Iterator Pattern)提供一种方法顺序访问一个聚合对象中各个元素,而又不需要暴露该对象内部表示....状态模式(State Pattern)允许一个对象在其内部状态改变改变它行为。对象看起来似乎修改了它所属类. ---- 六大设计原则????...2)只要父类能出现地方子类就可以出现,而且替换为子类也不会产生任何错误或异常,使用者可能根本就不需要知道是父类还是子类。...(5)迪米特法则(Law of Demeter, LOD) 定义:尽量减少类与类之间联系 一个软件实体应当尽可能少地与其他实体发生相互作用。

    22810

    XXE -XML External Entity

    这些是用于表示XML标签元字符,因此当它们出现在数据中,通常必须使用其实体来表示。 什么是XML元素?...元素类型声明为XML文档中可能出现元素类型和数量,哪些元素可能在彼此内部出现以及它们必须出现顺序设置规则。例如: <!...XML参数实体是一种特殊XML实体,只能在DTD中其他地方引用。就目前目的而言,您只需要知道两件事。首先,XML参数实体声明在实体名称之前包含百分比字符: <!...基于错误(外部DTD) 在这种情况下,我们将使服务器加载一个恶意DTD,该DTD将在错误消息中显示文件内容(仅当您可以看到错误消息才有效)。...如果文档DTD使用内部和外部DTD 声明混合,那么内部DTD可以重新定义在外部DTD中声明实体。发生这种情况,放宽了在另一个参数实体定义内使用XML参数实体限制。

    1.7K20

    C++奇迹之旅:值和引用本质效率与性能比较

    endl; // 输出10 引用一旦引用一个实体,再不能引用其他实体 引用本质上就是给原变量添加一个别名,它内存地址就是原变量地址。...TestFunc1内部操作实际上是a_copy,对a_copy修改不会影响实参a。TestFunc1返回,临时对象a_copy会被销毁。TestFunc1以值方式传递结构体A作为参数。...按引用传递(TestFunc2): 调用TestFunc2(a),不会进行值拷贝,直接传递a引用。TestFunc2内部操作仍然是实参a本身。TestFunc2返回,不需要销毁任何对象。...(*)才能访问其指向实体,如*ptr = 10; Null值: 引用不能为空(Null),必须在声明时初始化为一个有效实体。...引用在定义必须初始化,指针没有要求 引用在初始化时引用一个实体后,就不能再引用其他实体,而指针可以在任何时候指向任何一个同类型实体 没有NULL引用,但有NULL指针 在sizeof中含义不同:引用结果为引用类型大小

    16110

    Spring之BeanUtils实现原理解析

    一 背景 java知识体系统有很多数据实体,比较常用DTO、BO、DO、VO等,其他类似POJO概念太老了现在基本废弃掉了,本篇幅直接忽略,对于这几种数据实体各自代表含义和应用场景先做一下简单描述和分析...3:DTO DTO是Data Transfer Object缩写,叫做数据传输对象,主要用于跨服务之间数据传输,如公司内部做了微服务拆封,那么微服务之间数据交互就是以DTO作为数据结果响应载体,另外...前边介绍了几种常用数据实体,那么一个关键问题就出现了,既然应用分了那么多层,每个层使用数据实体可能不一样,也必然会存在实体之间转换问题,也是本篇文章需要重点讲述问题。...1:使用方式 在数据实体转换,用最多就是BeanUtils#copyProperties方法,基本用法就是: //DO是源数据对象,DTO是目标对象,把源类数据拷贝到目标对象 BeanUtils.copyProperties...existing : results); } 该方法中有几个比较重要概念,强引用、软引用、缓存、缓存安全、类加载和内省等,简单介绍一下概念: 强引用: 常见用new方式创建引用,只要有引用存在,就算出现

    3K20

    DDD领域驱动设计概念解析

    对象属性集虽然在物理上是独立出来,但在逻辑上它仍然是实体属性一部分,用来描述实体特征 在领域建模,我们可以将部分对象设计为值对象,保留对象业务含义,同时又减少了实体数量; 在数据建模,...领域模型内实体和值对象就好比个体,而能让实体和值对象协同工作组织就是聚合,它用来确保这些领域对象在实现共同业务逻辑,能保证数据一致性。...也就是说,聚合之间通过 聚合根ID 关联引用,如果需要访问聚合内部实体,就要先访问聚合根,再导航到聚合内部实体,外部对象不能直接访问聚合内实体 一个微服务可以是多个聚合,也可以是一个聚合,为了高性能...如何选择聚合根:是否有独立生命周期?是否有全局唯一ID?是否可以创建或者修改其他对象?是否有专门模块来管理这个实体? 根据业务单一原则和高内聚原则,找出与聚合根关联所有紧密依赖实体和值对象。...如果聚合设计过大,导致实体之间过于复杂,高频操作出现并发或者数据库锁,导致系统性能变差 通过唯一标识符引用其他聚合。

    1.1K21

    剖析【C++】——类和对象(下篇)——超详解——小白篇

    总结:构造函数体内赋值可以多次进行,而初始化只能进行一次。 1.2 初始化列表 初始化列表 是另一种在创建对象给成员变量赋初值方法。...这种方法更高效,因为它在对象创建就直接赋值,而不是先创建对象然后再赋值。 简单理解:假设你买了一辆新车,初始化列表就像你在购车前已经决定好车颜色、型号等,而不是买车后再去喷漆改装。...3.总结 内部类 是独立类,可以定义在外部类任何访问区域。 内部类可以直接访问外部类静态成员,不需要外部类对象或类名。 内部类可以通过外部类对象参数访问外部类非静态成员。...外部类不能访问内部私有成员,内部类也不会影响外部类大小计算。 5.再次理解类和对象 1. 抽象现实生活中实体 在现实生活中,计算机无法直接认识物理世界中实体,如洗衣机。...总结类和对象关系 类 是对某一类实体抽象和描述。类定义了这些实体具有的属性和方法,形成了一种新自定义类型。 对象 是类实例,是具体实体

    6810

    领域驱动设计,让程序员心中有码(六)

    即使是再简单场景,遇到并发访问,也会存在问题。由于不同用户对系统中数据访问是随机分布,意味着有可能会造成多个用户同时修改相互依赖对象,进而造成系统可用性急剧下降。...而根是Aggregate对外暴露特定实体。对Aggregate而言,外部对象只可以引用根,而边界内部对象则可以相互引用。...3、除根之外所有实体,在Aggregate内部都有唯一标识,但外部对象只能看到根实体而无法看到其他实体。...2、边界内对象具有本地标识,但仅限于Aggregate内部保持唯一性。 3、Aggregate外部对象不能引用除根Entity之外其他内部对象。...对Aggregate对象定义和分析是一件非常细致工作,我们应该根据实际应用场景,将实体和值对象分别聚集到Aggregate中,定义好边界和根后,通过根Entity来控制对边界内部其他对象访问

    33330

    【C++】C++特性揭秘:引用与内联函数 | auto关键字与for循环 | 指针空值

    a或pa也会影响对象pa或a 第二点: 引用在定义必须初始化(否则在编译阶段会报错) 第三点: 引用一旦引用一个实体,再不能引用其他实体 //引用定义后,不能改变指向(这一点很重要) int a =...会导致野引用访问未知名空间可以看作租房子,房子合同到期,如果非法进入会出现不安全影响。...1.7.2 引用与指针不同点 引用概念上定义一个变量别名,指针存储一个变量地址 引用在定义必须初始化,指针没有要求 引用在初始化引用一个实体后,就不能再引用其他实体,而指针可以在任何时候指向任何一个同类型实体...有多级指针,但是没有多级引用 访问实体方式不同,指针需要显示解引用引用编译器自己处理 引用比指针使用起来相对更安全 二、内敛函数 2.1 内敛函数概念 内敛函数是以关键字inline修饰函数,编译...对于其他文件中需要该函数,会发生链接错误

    10110

    C++打怪升级(二)- 引用详解

    引用类型是**复合类型,**格式数据类型& 引用变量名(对象名) = 引用实体; 与指针类型类似数据类型* 指针变量名 = 对象地址 ---- 简单举例 #include //...1.引用在定义必须初始化 一个变量可以有多个引用 引用一旦引用了一个实体,在本次程序执行中就不能再引用其它实体引用类型一般和引用实体是同种类型且严格匹配,但是例外情况。...** 见visual stdio 2019反汇编 联系: 引用出现简化了很多使用指针导致复杂情况,但是由于引用不能改变引用对象,所以在C++中引用并不能够完全代替指针地位。...引用在初始化时引用一个实体后,就不能再引用其他实体,而指针可以在任何时候指向任何 一个同类型实体; 4. 没有NULL引用,但有NULL指针; 5....引用自加即引用实体增加1,指针自加即指针向后偏移一个类型大小; 7. 有多级指针,但是没有多级引用; 8. 访问实体方式不同,指针需要显式解引用引用编译器自己处理; 9.

    35320

    XXE实体注入漏洞详解

    由于程序在解析输入XML数据,解析了攻击者伪造外部实体而产生。...这就造成了一个任意文件读取漏洞。 那如果我们指向是一个内网主机端口呢?是否会给出错误信息,我们是不是可以从错误信息上来判断内网主机这个端口是否开放,这就造成了一个内部端口被探测问题。...XXE漏洞带来危害 当允许引用外部实体, XML数据在传输中有可能会被不法分子被修改,如果服务器执行被恶意插入代码,就可以实现攻击目的攻击者可以通过构造恶意内容,就可能导致任意文件读取,系统命令执行...引用外部DTD文件访问内网主机/端口 :(看响应时间) 引用外部DTD文件访问外网 : 引用内部实体 :<!DOCTYPE a [<!

    1.2K20
    领券