【问题标题】:How to generate code that uses Android APIs如何生成使用 Android API 的代码
【发布时间】:2018-04-23 21:59:01
【问题描述】:

我有一个为我们的 Android 项目生成代码的 java 库。 我们使用它来减少我们需要在我们的一些RecyclerView 适配器中编写的代码量。 我遇到的问题是注解处理器不能依赖Android框架,这是相当有限的,因为我们需要在生成代码时引用一些Android SDK类。

public interface FeedModuleManager {
     ViewHolder create(ViewGroup parent, int viewType);
}

注解处理器生成上述接口的实现。 (还有更多方法,为了简洁,我把它拿出来了)

我所做的是创建了这些类的存根版本(ViewGroupViewHolder),但这会在我们的构建和工具堆栈中到处引起一些问题。

所以我正在寻找更好的方法来做到这一点..

有什么想法吗?

【问题讨论】:

    标签: java android code-generation annotation-processing


    【解决方案1】:

    据我所知,没有这样的库。有一个javapoet,但它会完全按照您指定的方式生成代码。但是绝不会执行例如特定接口的所有方法的实现。这个决定很可能必须被编程。

    【讨论】:

    • 我使用 Javapoet 生成代码,实际上我编写了要生成什么代码的逻辑。我遇到的问题是代码引用了 Android 框架(以及其他依赖于 Android 的库)中的类,这些类无法从处理器内部访问。
    • 哦,我明白了。然后,我不能再在这里帮忙了。但是,在这种情况下,我会使用 Android SDK 所需的类和包。
    猜你喜欢
    • 1970-01-01
    • 2019-08-08
    • 1970-01-01
    • 2017-12-08
    • 1970-01-01
    • 2016-08-30
    • 2012-05-02
    • 2021-11-09
    • 1970-01-01
    相关资源
    最近更新 更多