- 博客(435)
- 资源 (6)
- 问答 (1)
- 收藏
- 关注
原创 【Android】依赖注入的升级版-方法、字段、构造函数上注解依赖注入
开发者声明依赖、标注注解。在中注册接口绑定。使用获取目标类。Injector通过反射实现以下注入流程:查找带@Inject的构造器 → 构造对象查找字段@Inject→ 赋值查找方法@Inject→ 调用若@Singleton,则只构造一次@Inject不仅限于构造函数,字段和方法都可以支持自动注入。我们通过显式调用方法来完成方法注入。所以即使不是构造函数,setApiService()也会被自动执行。
2025-05-16 17:26:30
648
原创 Java 反射机制全解:从入门到实践
Java 反射机制是指程序在运行时动态获取类的信息,并且能够对类的属性、方法、构造器等进行操作的能力。通俗来说,就是“运行时查看和修改类的能力反射是 Java 提供的一组 API,位于包中,配合Class获取类的字段、方法、构造函数等元信息;动态创建对象;动态调用方法;操作属性值(包括私有属性)。优点缺点灵活、强大,适合框架底层性能差、类型不安全可以突破访问限制可读性差,易出错支持运行时动态操作类依赖字符串,不利于重构建议:在业务层代码中谨慎使用反射;在底层框架中合理利用反射。
2025-05-16 11:37:43
464
原创 【Android】Android 实现一个依赖注入的注解
本文介绍了如何在Android中实现一个简单的依赖注入(DI)框架。首先,定义了一个自定义注解 @Inject,用于标记需要注入的字段。接着,实现了一个 Injector 类,通过反射扫描目标类中的字段,并为标记了 @Inject 的字段创建实例并注入。最后,展示了如何在 MainActivity 中使用该注入器,自动注入 Service 对象并调用其方法。文章还提供了优化建议,如使用构造器注入、单例管理或注解处理器(APT)来提升性能和灵活性。该实现的核心原理是通过反射动态创建对象并赋值给目标字段。
2025-05-15 19:59:39
812
原创 【Android】微信分享纯文本、图片、小程序、口令分享
本文介绍了一个Android平台上的微信分享工具类WeChatShareHelper,支持纯文本、图片、小程序和口令分享。工具类通过封装微信SDK的API,简化了分享功能的实现。使用步骤包括初始化工具类、检查微信是否安装,以及调用相应方法进行分享。注意事项包括确保小程序路径和ID与开放平台一致、分享图片时需包含缩略图,以及分享前检查微信是否安装。该工具类为开发者提供了一个便捷的微信分享解决方案。
2025-05-13 20:03:37
333
原创 【后端】SpringBoot用CORS解决无法跨域访问的问题
适用于更底层的控制(不推荐,除非有特殊需求)。@Component@Override.allowedOrigins("http://localhost:3000") // 推荐明确指定前端地址.allowedHeaders("*") // 可选,允许前端发送的自定义 Header// 可选,预检请求的缓存时间(单位秒)
2025-05-12 20:06:30
1290
原创 java: Compilation failed: internal java compiler error 报错解决方案
如下图所示:在编译的时候提示原因:内部 java 编译错误,一般是编译版本不匹配。
2025-05-10 20:03:20
370
原创 Go使用Gin写一个对MySQL的增删改查服务
首先用SQL创建一个包含id、name属性的users表。三个方法整合一起放到main.go文件里。1. 添加mysql的依赖。3. 添加对gorm的依赖。根据姓名插入一个用户信息。根据id删除一个用户信息。2. 添加gin的依赖。
2025-05-08 16:04:02
410
原创 SpringBoot 创建获取yml里配置字段值
用@Component给这个类声明是一个@Bean类,同时用@ConfigurationProperties这个来声明前缀是yml里配置的“proxy”,然后声明一个和yml配置"enable"同名的变量,配置上get和set方法。在需要用到这个yml里配置enable的地方,来做逻辑处理。比如在application.yml里有一个这样的配置。需要根据这个配置的不同来做不同的业务逻辑处理。创建一个这样获取全局Bean对象的工具类。
2025-05-08 10:23:01
782
原创 Android Studio根目录下创建多个可运行的模块
然后可以看到app对应一开始创建的app模块,刚创建的customcomponent对应的,这样就可以在一个根目录下有多个可以安装运行的项目了。接着选中Phone & Tablet, 填写项目名和包名。右键选中根目录,选择New -> Module。选择一个模板,选择Next。
2025-05-07 20:25:44
314
原创 Whistle无权限访问本地文件
然后用sudo w2 restart 管理员权限启动。先用w2 stop停止运行。这个官网提示的解决方案。接着就可以正常访问了。
2025-05-07 15:19:06
168
原创 Go 写一个简单的Get和Post请求服务
安装 Go官网下载地址安装后执行:安装 VS Code 插件配置环境变量(可选)创建目录进入对应目录初始化go.mod模块管理文件整体目录结构如下所示:2. 3. 4. 5. 安装mux如果提示报错,下载超时的话,更换代理更换代理之后再运行上述命令接着启动mainGET 请求POST 请求再次请求GET,可以拿到刚才保存的User用户信息
2025-04-30 16:13:03
675
原创 SpringBoot 设置HTTP代理访问
遇到这样的一个场景,代码部署到私有服务器上去之后,这台私有服务器a无法直接访问公网,需要通过代理转发到另外一台专门访问公网的服务器b, 让服务器b去请求对应的公网ip,于是就需要设置Http代理。通常使用springboot会用到两种不同的httpclientspring-boot-starter-webflux 这个包下面的WebClientSpring-web 这个包下面的RestTemplate。
2025-04-30 11:00:47
547
原创 Android 实现一个隐私弹窗
res/layout/dialog_privacy_policy.xml 文件。res/drawable/bg_dialog_rounded.xml 文件。res/drawable/bg_button_outline.xml文件。res/drawable/bg_button_primary.xml文件。2. 《用户协议》、《隐私政策》设置成可点击的,且颜色要区分出来。1. 设置同意、退出、点击用户协议、点击隐私协议的函数参数。PrivacyPolicyDialog.kt 文件。
2025-04-29 16:12:22
918
原创 H5实现一个二维码生成器页面
在html里声明标题、输入框、二维码展示区域、下载按钮、明亮/暗黑模式切换按钮。1. 能够通过输入url链接然后生成对应的二维码。3. 支持下载二维码图片到本地。2. 能够适配暗黑模式。
2025-04-27 17:35:36
244
原创 Go学习路线指南
https://github.com/darius-khll/golang-developer-roadmap/blob/master/i18n/zh-CN/ReadMe-zh-CN.md
2025-04-13 20:22:47
161
原创 Go环境变量配置
进入点击下载对应操作系统的安装成功界面如下图,默认安装到: usr/local/go/安装完成之后,在终端运行 go version,如果显示类似下面的信息,表明安装成功(备注:darwin(其实就是 macOS)和 amd64 分别是操作系统和CPU架构)
2025-04-13 19:58:43
614
原创 CSS 学习提升网站或者项目
它提供了很多真实世界的UI设计挑战,你需要通过HTML、CSS和JavaScript来实现这些设计。它的项目包括了设计和实现网页布局、响应式设计等,帮助你通过实际操作来加深对CSS的理解。提供了一个全面的CSS学习路线,包含练习项目,涵盖基础和进阶的CSS知识。你可以通过做项目来加深对CSS的理解,提升实际操作能力。你可以通过查找和修改别人分享的CSS项目来练习,还可以自己尝试实现不同的CSS效果和动画。CSS-Tricks 提供了很多关于CSS的技巧和教程,可以通过实践它们来提高CSS技能。
2025-04-08 19:35:09
393
原创 【大前端】【Android】whistle配置Android手机代理脚本
Android配置whistle手机代理,为了避免频繁自己手动去WiFi代理输入私有IP地址,特地建了一个Python脚本来帮助一键配置好代理,解除代理。proxy.py文件代码如下,主要核心也就是用Python模拟发送adb命令去控制代理。省掉了自己打开WiFi输入IP地址的过程。
2025-03-10 14:22:32
1403
1
原创 Python 爬取唐诗宋词三百首
你可以使用 和 来爬取《唐诗三百首》和《宋词三百首》的数据。以下是一个基本的 Python 爬虫示例,它从 中华诗词网 或类似的网站获取数据并保存为 JSON 文件。 其中,这里的base_url替换成这个网站唐诗三百首全集_古诗文网右侧每一栏具体的url即可爬取对应栏目的数据运行之后控制台输出如下所示:爬取来的唐诗的数据:爬取来的宋词数据:
2025-03-03 19:55:32
2287
原创 Trae AI IDE 全网最全的使用教程
近期,字节发布了一款 AI Coding 产品 ——其优雅的 UI、丝滑的交互、母语级的支持、更高的 AI 集成度、更然自的交式互对话开发、更精准的 AI 生效成果,都让你感到亲切和惊艳!它不再是一个工具,而是一个能 “思考” 和 “共创” 的协作者,帮助你更灵活的调用 AI 参与项目,实现更高效率、更好效果的开发体验。
2025-03-02 23:37:11
20666
17
原创 【Android】用 chrome://inspect/#devices 调试H5页面
直接连接手机usb,打开开发者模式,然后连上数据线,查看到自己应用。开发的过程中,不可避免的需要遇到去与。其中如果还有需要的话,可以引入。,可以打开到这个H5页面信息。交互,甚至有时候需要去调试。
2025-02-25 19:19:48
763
原创 Could not locate the repository for “https://github.com/vercel/next-learn-starter/tree/master/lear
运行完成之后,可以看到成功下载对应的代码,并提示。分支,所以需要用下面这行命令去执行。然后看看是不是网络问题,通过。在启动页面跟着学习的时候。里找到了解决这个问题的答案。分支不再存在,改成了。
2025-02-24 10:28:04
950
原创 创建React项目的三个方式
最基础的 React 脚手架,适合大多数 React 应用。Vite:速度快,适合开发时追求快速反馈的场景。Next.js:适用于服务端渲染或静态生成的 React 应用,SEO 更友好。你可以根据项目需求选择合适的工具来创建 React 项目!
2025-02-23 23:56:12
932
原创 用命令模式设计一个JSBridge用于JavaScript与Android交互通信
在开发APP的过程中,通常会遇到Android需要与H5页面互相传递数据的情况,而Android与H5交互的容器就是WebView。因此要想设计一个高可用的JSBridgeJSBridgeJSBridge,不妨可以参考下述示例:设计一套用于AndroidAndroidAndroid端与JavaScriptJavaScriptJavaScript传输数据的协议规范,如下所示:其中既然是要设计到Android与JavaScript两个交互,就必然会涉及Android端传输数据
2025-02-16 22:55:40
1352
原创 Java和JavaScript当中的json对象和json字符串分别讲解
将JSON 字符串转换为JavaScript 对象。:将JavaScript 对象转换为JSON 字符串。用于从 JSON 字符串转换为对象。用于从对象转换为 JSON 字符串。
2025-02-16 17:46:39
680
原创 大模型常见词汇说明
它是人工智能领域中一种设计智能体的方法论,在ReAct框架下,智能体首先根据当前情境进行推理(Reason),决定一个行动方案,然后执行该行动(Action),接着根据行动的结果再次进行推理,形成一个循环迭代的过程。在AI绘画的世界里,ControlNet如同一位指导老师,它辅助AI理解并遵循特定的视觉风格或元素布局,比如确保画面中的建筑物具有特定的几何形状或色彩搭配,使得最终的艺术作品不仅富有创意,还精准符合创作者的意图。较大的窗口提供更丰富语义,帮助生成连贯、准确的文本,避免歧义,改善上下文依赖处理。
2025-02-16 17:03:35
894
原创 【Android】设计一个圆角矩形的WebView
activity_main.xml 布局。设置一个圆角矩形的WebView。自定义RoundWebView。
2025-02-13 18:54:22
573
原创 MacOS 安装NVM
保存并关闭你的文件。接下来,将该变量加载到当前的shell环境中。在下一次登录,它将自动加载。,用于macOS Catalina或更高版本)中添加以下几行。现在,配置所需的环境变量。在你的home中编辑以下配置文件。接下来,在home目录中为NVM创建一个文件夹。然后用下述命令检测nvm版本。
2025-02-07 23:27:31
1258
原创 Android 约束布局ConstraintLayout整体链式打包居中显示
ConstraintLayout 约束布局使用layout_constraintHorizontal_chainStyle打包链式
2025-02-06 16:23:28
721
原创 本地用ollama部署DeepSeek大模型
选择对应规模的模型,比如选择1.5b的,然后复制右边这个命令,如果输出了ollama版本号的话,证明安装成功。【Ollama全面指南:安装、使用与高级定制】这样的提示词就表示安装成功了。然后可以开始输入文字进行对话了。然后按照提示一步一步安装即可。官网,点击下面箭头指向的链接。等待拉取对应的模型到本地。
2025-02-05 16:20:13
530
原创 Kotlin泛型学习篇
有时你想说,你对类型参数一无所知,但仍然希望以安全的方式使用它。这里的安全方式是定义泛型类型的这种投影,该泛型类型的每个具体实例化都会是该投影的子类型。仅使用 Kotlin 时,您不太可能需要显式声明绝对不可为 null 的类型,因为 Kotlin 的类型推断会为您处理此问题。这么做毫无意义, 因为我们可以像以前一样在该对象上调用所有相同的方法,所以更复杂的类型并没有带来价值。由于类型擦除,并没有通用的方法在运行时检测一个泛型类型的实例是否通过指定类型参数所创建 ,并且编译器禁止这种。但这样会有一些影响。
2025-01-24 10:51:56
1725
1
原创 【Kotlin】上手学习之控制流程篇
在 Kotlin 中,if是一个表达式:它会返回一个值。因此就不需要三元运算符(),因为普通的if就能胜任这个角色。
2025-01-17 10:54:51
1327
原创 Android Studio 将Kotlin和Java代码互相转化
方法1:快捷键:Ctrl+Shift+Alt+K(Windows) Cmd+Options+Shift+K会提示如下弹窗提醒是否要转成Kotlin代码比如运行之后,就会转换成方法2:Code - Convert Java File To Kotlin File。
2025-01-16 11:07:26
1025
原创 Android JecPack组件之LifeCycles 使用详解
LifeCycle 是一个可以感知宿主生命周期变化的组件。常见的宿主包括 Activity/Fragment、Service 和 Application。LifeCycle 会持有宿主的生命周期状态的信息,当宿主生命周期发生变化时,会通知监听宿主的观察者。系统组件的生命周期与普通组件之间的耦合性。系统组件指:Activity/Fragment、Service 和 Application。普通组件指:将代码按照功能或者作用封装成的组件。
2025-01-15 19:32:22
1605
TA创建的收藏夹 TA关注的收藏夹
TA关注的人