gpt4 book ai didi

java - 如何提高反射的稳健性?

转载 作者:行者123 更新时间:2023-11-30 10:42:45 25 4
gpt4 key购买 nike

我正在修改其他人的开源库以更好地满足我的需求,并且在这个过程中我意识到该库本身相当脆弱。它没有测试,其代码的关键部分使用反射来绕过 Android SDK 中的权限级别。我承认这是不好的做法,但在这种情况下我同意原作者的观点,即标记为私有(private)或包私有(private)的 SDK 的某些部分应该受到保护或公开。

例如,一个类除了扩展一个标准的 Android UI 类外什么都不做,但为其其中一个 View 的颜色提供了一个 getter 和 setter,否则无法更改。

显然,依赖于他人代码库中私有(private)代码的代码本质上是脆弱的,但我认为我至少可以为它编写一些测试。但是我唯一能想到的就是实例化它,改变颜色,看看它是否崩溃。假设如果不访问私有(private)成员就无法做我想做的事,我该怎么做才能使它更容易接受?

最佳答案

没有更多的想到了。我会添加一些单元测试来执行您想要的特定反射代码,看看它是否崩溃/保持正确的行为。您依赖于故意隐藏第 3 方库的 impl 细节——正如您所说的那样,这在某些时候是灾难的教科书定义。因此,除了提出尽快删除此代码的迁移计划之外,我会简单地编写覆盖所有受影响代码的单元测试(尽管实际上你的大部分应用程序应该已经被单元测试覆盖;以及集成测试你不能进行单元测试的部分)

关于java - 如何提高反射的稳健性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37981114/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com