2024年组件化开发和JavaPoet倒序生成方法、类、包代码,java面试题大汇总

最后

本人也收藏了一份Java面试核心知识点来应付面试,借着这次机会可以送给我的读者朋友们:

目录:

二面蚂蚁金服(交叉面),已拿offer,Java岗定级阿里P6

Java面试核心知识点

一共有30个专题,足够读者朋友们应付面试啦,也节省朋友们去到处搜刮资料自己整理的时间!

二面蚂蚁金服(交叉面),已拿offer,Java岗定级阿里P6

Java面试核心知识点

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

      • 第一种方法
  • 第二种方法


前言

===============================================================

这几年随着技术的不断更新,移动端的开发更趋于夸平台模式。但是单平台开发还是依然的火热,android 方面组件化、插件化、热修复等开发模式,在不同的应用场景上,依然还是受到广大开发者的热爱和追捧。由于本人对组件化开发相对熟悉一点,就简单的介绍一下,组件化的开发。

组件化使用与分析

=====================================================================

组件化开发,一般比较适用于多人团队的开发,如果是一个人话,那这个项目开发有可能会有种过度设计的感觉,但是现在依靠文件夹来分包,在项目业务功能越来越大的时候,慢慢的整个项目就回变的越来越冗余,也会对后期项目的维护带来极大的困难。组件化开发的模式,我觉得有以下特点,不相互依赖、高度解耦、任意组合、分层独立化,在有重复使用的模块的时候,可以重复的使用。

分层独立化

==================================================================

如下图,整个组件化开发,智能纵向依赖,不能横向依赖

图例

APT使用的重要元素

=======================================================================

组件化开发避不开使用APT(根据我们自己定的规则,帮我们生成代码及生成我们自己需要的类)技术。其中我们也会使用到javapoet,android之神写的。比之前传统的生成代码不同,加入了OOP模式。

| 终于元素 | 说明 |

| — | — |

| PackageElement | 表示程序包元素,提供对有关包及其他成员的信息访问 |

| ExecutabElement | 表示某个类或者接口的方法、构造方法或初始化程序(静态或实例) |

| TypeElement | 表示一个类或者接口程序元素提供对有关类型及成员的信息的访问 |

| VariabElement | 表示一个字段、enum常量方法或构造方法参数局部变量或者异常参数 |

自动生成的模板1

=====================================================================

public final class HuangXianFengTest {

public static void main(System[] args) {

System.out.println(“Hello JavaPoet!”);

}

}

第一种方法

Set<? extends Element> elements = roundEnvironment.getElementsAnnotatedWith(ARouter.class);

for (Element element : elements) {

//生成方法

MethodSpec mainMethod = MethodSpec.methodBuilder(“main”)

.addModifiers(Modifier.PUBLIC, Modifier.STATIC)

.returns(void.class)

.addParameter(String[].class,“args”)

.addStatement(“ T . o u t . p r i n t l n ( T.out.println( T.out.println(S)”,System.class,“Hello JavaPoet!”)

.build();

//生成类

TypeSpec testClass = TypeSpec.classBuilder(“HuangXianFengTest”)

.addMethod(mainMethod)

.addModifiers(Modifier.PUBLIC,Modifier.FINAL)

.build();

//生成包

JavaFile packagef = JavaFile.builder(“com.muf.arouter.test”,testClass).build();

try {

packagef.writeTo(filer);

} catch (IOException e) {

e.printStackTrace();

messager.printMessage(Diagnostic.Kind.NOTE,“生成Test文件时失败,异常:”+e.getMessage());

}

最后

这份清华大牛整理的进大厂必备的redis视频、面试题和技术文档

祝大家早日进入大厂,拿到满意的薪资和职级~~~加油!!

感谢大家的支持!!

image.png

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**

需要这份系统化的资料的朋友,可以点击这里获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值