有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何提高反射的健壮性?

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

例如,一个类除了扩展一个标准的Android UI类之外什么都不做,但是为它的一个视图的颜色提供了一个getter和setter,否则就无法更改

显然,依赖他人代码库中的私有代码的代码本质上是脆弱的,但我想我至少可以为它编写一些测试。但我唯一能想到的就是实例化它,改变颜色,看看它是否崩溃。假设在没有私人会员的情况下,我无法做我想做的事情,那么我该怎么做才能让它更受欢迎呢


共 (1) 个答案

  1. # 1 楼答案

    没什么比这更让人想起的了。我将添加一些单元测试,以测试您想要的特定反射代码,并查看它是否崩溃/保持正确的行为。你是在故意隐瞒第三方图书馆的细节,正如你所说,这是教科书对灾难的定义。因此,除了尽快删除这段代码的迁移计划之外,我只需要编写涵盖所有受影响代码的单元测试(尽管实际上,你的大多数应用程序都应该已经包含在单元测试中;以及针对你无法进行单元测试的部分进行集成测试)