分享一个idea插件MyBatisX的Bug

分享一个idea插件MyBatisX的Bug

The plugin com.baomidou.plugin.idea.
mybatisx failed to save settings and has been disabled. Please restart IntelliJ IDEA
java.lang.Throwableat com.intellij.openapi.project.DumbServiceImpl.queueTask(DumbServiceImpl.java:293)at com.intellij.openapi.project.DumbModeTask.queue(DumbModeTask.java:68)at com.intellij.indexing.shared.platform.impl.OnDiskSharedIndexChunkLocator.runActivity(OnDiskSharedIndexChunkLocator.java:47)at com.intellij.openapi.project.DumbServiceImpl.queueStartupActivitiesRequiredForSmartMode(DumbServiceImpl.java:142)at com.intellij.openapi.project.DumbServiceStartupActivity$run$2.invoke(DumbServiceStartupActivity.kt:10)at com.intellij.openapi.project.DumbServiceStartupActivity$run$2.invoke(DumbServiceStartupActivity.kt:9)at com.intellij.openapi.progress.CancellationKt.withCurrentJob$lambda$0(cancellation.kt:17)at com.intellij.openapi.progress.Cancellation.withCurrentJob(Cancellation.java:60)at com.intellij.openapi.progress.CancellationKt.withCurrentJob(cancellation.kt:17)at com.intellij.openapi.progress.CoroutinesKt.blockingContext(coroutines.kt:142)at com.intellij.openapi.project.DumbServiceStartupActivity.run(DumbServiceStartupActivity.kt:9)at com.intellij.ide.startup.impl.StartupManagerImpl.runInitProjectActivities(StartupManagerImpl.kt:221)at com.intellij.ide.startup.impl.StartupManagerImpl.initProject(StartupManagerImpl.kt:163)at com.intellij.openapi.project.impl.ProjectManagerImplKt$runInitProjectActivities$1.invokeSuspend(ProjectManagerImpl.kt:974)at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)
com.intellij.openapi.project.IndexNotReadyException: Please change caller according to com.intellij.openapi.project.IndexNotReadyException documentationat com.intellij.openapi.project.IndexNotReadyException.create(IndexNotReadyException.java:66)at com.intellij.util.indexing.FileBasedIndexImpl.handleDumbMode(FileBasedIndexImpl.java:841)at com.intellij.util.indexing.FileBasedIndexImpl.ensureUpToDate(FileBasedIndexImpl.java:789)at com.intellij.psi.stubs.StubIndexEx.getContainingIds(StubIndexEx.java:397)at com.intellij.psi.stubs.StubIndexEx.processElements(StubIndexEx.java:168)at com.intellij.psi.stubs.StubIndex.getElements(StubIndex.java:103)at com.intellij.psi.stubs.StubIndex.getElements(StubIndex.java:91)at com.intellij.psi.impl.java.stubs.index.JavaFullClassNameIndex.get(JavaFullClassNameIndex.java:34)at com.intellij.psi.impl.file.impl.JavaFileManagerImpl.doFindClasses(JavaFileManagerImpl.java:80)at com.intellij.psi.impl.file.impl.JavaFileManagerImpl.findClass(JavaFileManagerImpl.java:103)at com.intellij.psi.impl.PsiElementFinderImpl.findClass(PsiElementFinderImpl.java:40)at com.intellij.psi.impl.JavaPsiFacadeImpl.doFindClass(JavaPsiFacadeImpl.java:93)at com.intellij.psi.impl.JavaPsiFacadeImpl.findClass(JavaPsiFacadeImpl.java:71)at com.baomidou.plugin.idea.mybatisx.util.JavaUtils.findClazz(JavaUtils.java:77)at com.baomidou.plugin.idea.mybatisx.alias.InnerAliasResolver.<init>(InnerAliasResolver.java:18)at com.baomidou.plugin.idea.mybatisx.alias.AliasResolverFactory.createInnerAliasResolver(AliasResolverFactory.java:14)at com.baomidou.plugin.idea.mybatisx.alias.PlusAliasFacade.initResolvers(PlusAliasFacade.java:51)at com.baomidou.plugin.idea.mybatisx.alias.PlusAliasFacade.<init>(PlusAliasFacade.java:39)at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)at com.intellij.serviceContainer.ConstructorInjectionKt.instantiateUsingPicoContainer(constructorInjection.kt:54)at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClassWithConstructorInjection(ComponentManagerImpl.kt:996)at com.intellij.serviceContainer.ServiceComponentAdapter.createAndInitialize(ServiceComponentAdapter.kt:43)at com.intellij.serviceContainer.ServiceComponentAdapter.doCreateInstance(ServiceComponentAdapter.kt:39)at com.intellij.serviceContainer.BaseComponentAdapter.doCreateInstance(BaseComponentAdapter.kt:154)at com.intellij.serviceContainer.BaseComponentAdapter.createInstance$lambda$1(BaseComponentAdapter.kt:133)at com.intellij.openapi.progress.Cancellation.computeInNonCancelableSection(Cancellation.java:99)at com.intellij.serviceContainer.BaseComponentAdapter.createInstance(BaseComponentAdapter.kt:132)at com.intellij.serviceContainer.BaseComponentAdapter.getInstance(BaseComponentAdapter.kt:92)at com.intellij.serviceContainer.ComponentManagerImpl.doGetService(ComponentManagerImpl.kt:673)at com.intellij.serviceContainer.ComponentManagerImpl.getService(ComponentManagerImpl.kt:629)at com.intellij.openapi.components.ServiceManager.getService(ServiceManager.java:27)at com.baomidou.plugin.idea.mybatisx.alias.PlusAliasFacade.getInstance(PlusAliasFacade.java:32)at com.baomidou.plugin.idea.mybatisx.alias.AliasClassReference.resolve(AliasClassReference.java:35)at com.intellij.codeInsight.TargetElementUtilBase.getReferencedElement(TargetElementUtilBase.java:177)at com.intellij.codeInsight.TargetElementUtilBase.doGetReferenceOrReferencedElement(TargetElementUtilBase.java:165)at com.intellij.codeInsight.TargetElementUtilBase.getReferenceOrReferencedElement(TargetElementUtilBase.java:210)at com.intellij.codeInsight.TargetElementUtilBase.getReferencedElement(TargetElementUtilBase.java:254)at com.intellij.codeInsight.TargetElementUtilBase.doFindTargetElement(TargetElementUtilBase.java:233)at com.intellij.codeInsight.TargetElementUtilBase.findTargetElement(TargetElementUtilBase.java:298)at com.intellij.codeInsight.TargetElementUtil.findTargetElement(TargetElementUtil.java:147)at com.intellij.openapi.fileEditor.impl.text.TextEditorPsiDataProvider.getPsiElementIn(TextEditorPsiDataProvider.java:235)at com.intellij.openapi.fileEditor.impl.text.TextEditorPsiDataProvider.getSlowData(TextEditorPsiDataProvider.java:145)at com.intellij.openapi.fileEditor.impl.text.TextEditorPsiDataProvider.lambda$getData$0(TextEditorPsiDataProvider.java:72)at com.intellij.ide.impl.DataManagerImpl.getDataFromProviderInner(DataManagerImpl.java:241)at com.intellij.ide.impl.DataManagerImpl.getSlowData(DataManagerImpl.java:225)at com.intellij.ide.impl.DataManagerImpl.lambda$getDataRuleInner$6(DataManagerImpl.java:177)at com.intellij.ide.impl.DataManagerImpl.lambda$getDataRuleInner$8(DataManagerImpl.java:182)at com.intellij.ide.impl.DataManagerImpl.getDataFromRuleInner(DataManagerImpl.java:112)at com.intellij.ide.impl.DataManagerImpl.getDataFromRulesInner(DataManagerImpl.java:99)at com.intellij.ide.impl.DataManagerImpl.getDataFromProviderAndRulesInner(DataManagerImpl.java:85)at com.intellij.ide.impl.DataManagerImpl.lambda$getDataFromRuleInner$3(DataManagerImpl.java:113)at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:68)at com.intellij.ide.impl.dataRules.NavigatableRule.getData(NavigatableRule.java:39)at com.intellij.ide.impl.DataManagerImpl.getRulesData(DataManagerImpl.java:210)at com.intellij.ide.impl.DataManagerImpl.lambda$getDataRuleInner$8(DataManagerImpl.java:183)at com.intellij.ide.impl.DataManagerImpl.getDataFromRuleInner(DataManagerImpl.java:112)at com.intellij.ide.impl.DataManagerImpl.getDataFromRulesInner(DataManagerImpl.java:99)at com.intellij.ide.impl.DataManagerImpl.getDataFromProviderAndRulesInner(DataManagerImpl.java:85)at com.intellij.ide.impl.DataManagerImpl.lambda$getDataFromRuleInner$3(DataManagerImpl.java:113)at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:68)at com.intellij.ide.impl.dataRules.NavigatableArrayRule.getData(NavigatableArrayRule.java:23)at com.intellij.ide.impl.DataManagerImpl.getRulesData(DataManagerImpl.java:210)at com.intellij.ide.impl.DataManagerImpl.lambda$getDataRuleInner$8(DataManagerImpl.java:183)at com.intellij.ide.impl.DataManagerImpl.getDataFromRuleInner(DataManagerImpl.java:112)at com.intellij.ide.impl.DataManagerImpl.getDataFromRulesInner(DataManagerImpl.java:99)at com.intellij.ide.impl.DataManagerImpl.getDataFromRules(DataManagerImpl.java:67)at com.intellij.openapi.actionSystem.impl.PreCachedDataContext.getDataInner(PreCachedDataContext.java:224)at com.intellij.openapi.actionSystem.impl.PreCachedDataContext.getData(PreCachedDataContext.java:166)at com.intellij.openapi.actionSystem.DataContext.getData(DataContext.java:42)at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$ensureSlowDataKeysPreCached$20(ActionUpdater.java:471)at com.intellij.diagnostic.telemetry.TraceKt.runWithSpan(trace.kt:74)at com.intellij.openapi.actionSystem.impl.ActionUpdater.ensureSlowDataKeysPreCached(ActionUpdater.java:466)at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$callAction$6(ActionUpdater.java:201)at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1111)at com.intellij.openapi.actionSystem.impl.ActionUpdater.callAction(ActionUpdater.java:201)at com.intellij.openapi.actionSystem.impl.ActionUpdater.callAction(ActionUpdater.java:161)at com.intellij.openapi.actionSystem.impl.ActionUpdater.updateActionReal(ActionUpdater.java:137)at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$new$0(ActionUpdater.java:124)at com.intellij.openapi.actionSystem.impl.ActionUpdater.update(ActionUpdater.java:705)at com.intellij.openapi.actionSystem.impl.ActionUpdater.expandGroupChild(ActionUpdater.java:556)at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$doExpandActionGroup$23(ActionUpdater.java:529)at com.intellij.util.containers.ContainerUtil.concat(ContainerUtil.java:1406)at com.intellij.openapi.actionSystem.impl.ActionUpdater.doExpandActionGroup(ActionUpdater.java:529)at com.intellij.openapi.actionSystem.impl.ActionUpdater.expandGroupChild(ActionUpdater.java:606)at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$doExpandActionGroup$23(ActionUpdater.java:529)at com.intellij.util.containers.ContainerUtil.concat(ContainerUtil.java:1406)at com.intellij.openapi.actionSystem.impl.ActionUpdater.doExpandActionGroup(ActionUpdater.java:529)at com.intellij.openapi.actionSystem.impl.ActionUpdater.expandActionGroup(ActionUpdater.java:309)at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$doExpandActionGroupAsync$14(ActionUpdater.java:377)at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$doExpandActionGroupAsync$15(ActionUpdater.java:396)at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1111)at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$tryRunReadActionAndCancelBeforeWrite$19(ActionUpdater.java:428)at com.intellij.openapi.progress.util.ProgressIndicatorUtilService.runActionAndCancelBeforeWrite(ProgressIndicatorUtilService.java:63)at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:128)at com.intellij.openapi.actionSystem.impl.ActionUpdater.tryRunReadActionAndCancelBeforeWrite(ActionUpdater.java:424)at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$doExpandActionGroupAsync$16(ActionUpdater.java:396)at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:186)at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$13(CoreProgressManager.java:604)at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:679)at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:635)at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:603)at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:173)at com.intellij.openapi.progress.util.BackgroundTaskUtil.runUnderDisposeAwareIndicator(BackgroundTaskUtil.java:366)at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$doExpandActionGroupAsync$17(ActionUpdater.java:395)at io.opentelemetry.context.Context.lambda$wrap$1(Context.java:212)at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:243)at com.intellij.util.concurrency.BoundedTaskExecutor.access$200(BoundedTaskExecutor.java:29)at com.intellij.util.concurrency.BoundedTaskExecutor$1.executeFirstTaskAndHelpQueue(BoundedTaskExecutor.java:216)at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:212)at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:205)at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:702)at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:699)at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:699)at java.base/java.lang.Thread.run(Thread.java:833)

这个错误表明 MyBatis 插件 (com.baomidou.plugin.idea.mybatisx) 在保存设置时遇到了问题,并且已被禁用。要解决这个问题,您可以尝试以下几个步骤:

  1. 重启 IntelliJ IDEA: 按照错误消息中的建议,尝试重新启动 IntelliJ
    IDEA。有时候重新启动可以解决临时性的配置问题。

  2. 检查插件版本: 确保您使用的 MyBatis 插件是最新版本。在 IntelliJ IDEA 中,您可以转到 “File” ->
    “Settings” -> “Plugins”,然后找到 MyBatis 插件并确保它是最新版本。

  3. 禁用插件并启动: 如果插件的版本已经是最新的,尝试禁用 MyBatis 插件,然后重新启动 IntelliJ IDEA。这可以通过
    “File” -> “Settings” -> “Plugins” 中的插件列表进行操作。禁用后,再次启用插件并重新启动 IDE。

  4. 检查错误日志: 如果上述步骤都没有解决问题,您可能需要查看 IntelliJ IDEA 的错误日志以获取更详细的信息。您可以通过
    “Help” -> “Show Log in Explorer/Finder” 打开日志文件,然后查找与 MyBatis
    插件相关的错误信息。

  5. 卸载MyBatisX插件从新安装

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/598174.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

XV4001BC (数字输出) 车载用

XV4001BC、XV4001BD、XV4001KC和XV4001KD是车载用SPI/I2C输出接口&#xff0c;支持角速度输出、温度传感器输出以及20度倾斜实现。这些接口可适应各种汽车导航和通讯系统&#xff0c;符合AEC-Q200标准 SPI / I2C 输出接口角速度输出(16bit)、温度传感器输出(11bit)20度倾斜实现…

初识Web服务器

一、web服务器 1、什么是web服务器&#xff1f; web服务器就是web项目的容器&#xff0c;我们将开发好的web项目部署到web容器中&#xff0c;才能使用网络中的用户通过浏览器进行访问。 一张图带你了解web服务器有啥作用&#xff1a; 在我的电脑上有一个已经做好的项目&#…

大数据Doris(五十):数据导出的其他导出案例参考

文章目录 数据导出的其他导出案例参考 一、​​​​​

Spark调优解析-spark数据倾斜优化2(七)

1 数据倾斜优化 1.1为何要处理数据倾斜&#xff08;Data Skew&#xff09; 什么是数据倾斜 对Spark/Hadoop这样的大数据系统来讲&#xff0c;数据量大并不可怕&#xff0c;可怕的是数据倾斜。 何谓数据倾斜&#xff1f;数据倾斜指的是&#xff0c;并行处理的数据集中&#xf…

UE5.1_AssetEditorSubsystemUE4_AssetEditorManager

UE5.1_AssetEditorSubsystem&UE4_AssetEditorManager 目录 UE5.1_AssetEditorSubsystem&UE4_AssetEditorManager 1. 疑问: 2. 引擎源码文件差别:

react中概念性总结(二)

目录 说说你对react的理解&#xff1f;有哪些特性&#xff1f; 说说Real diff算法是怎么运作的&#xff0c;从tree层到component层到element层分别讲解&#xff1f; 调和阶段setState干了什么&#xff1f; 说说redux的工作流程&#xff1f; 为什么react元素有一个$$type属…

Python split()方法详解:分割字符串

Python 中&#xff0c;除了可以使用一些内建函数获取字符串的相关信息外&#xff08;例如 len() 函数获取字符串长度&#xff09;&#xff0c;字符串类型本身也拥有一些方法供我们使用。 注意&#xff0c;这里所说的方法&#xff0c;指的是字符串类型 str 本身所提供的&#x…

[每周一更]-(第80期):分析源码flag,配合示例展示用法

Go 语言标准库中的 flag 包提供了一套简单而又强大的命令行参数解析工具。以下是对 flag 包源码的一些关键点的解析&#xff1a; FlagSet 结构体&#xff1a; FlagSet 是 flag 包的核心结构体&#xff0c;用于表示一组命令行参数。它包含了一个存储命令行参数的 map&#xff…

neutron 安全组代码实现(一)

最近在学习neutron 安全组相关逻辑&#xff0c;所以梳理一下neutron关于安全组的具体代码实现&#xff0c;下面是neutron创建安全组时的代码&#xff0c;总体来说所有service的创建流程是一样的 创建安全组 #neutron --debug security-group-create sg-debug-can-deletecurl …

酷开科技 | 酷开系统9.2,开启个性化时代

现代人&#xff0c;总喜欢不走寻常路&#xff0c;以彰显自己的不同。酷开系统的个性化推荐就能满足你的这类需求&#xff0c;既能给你想要的内容&#xff0c;又能给你与众不同的体验&#xff01; 想听音乐了&#xff1f;打开酷开系统音乐频道&#xff0c;随机播放为你推荐的歌曲…

springboot devtools实现热部署

1.配置devtools依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency>2.配置maven插件&…

语音遥控器2-语音功能实现

语音语义识别方案我们采用的是思某驰。 调查了一下语音相关代码&#xff0c;不管腾某讯&#xff0c;还是思某驰&#xff0c; 一般都会涉及到以下几个部分的工作&#xff1a; 对接语音识别SDK Sdk对接主要是密钥&#xff0c;认证&#xff0c;消息的处理&#xff1b; 方案采…

【四】CocosCreator-修改引擎源码

看源码的过程中&#xff0c;少不了得修修改改源码&#xff0c;做点实验。果断去找找源码在哪里&#xff0c;然后就可以快乐动手改源码了。 CocosCreator引擎源码主要就是js和原生C两类&#xff0c;分别在引擎目录的resources/engine和resources/cocos2d-x下&#xff0c;如图&am…

WEB 3D技术 three.js 法向量演示性讲解

本文 我们来说法向 法向 又叫 法向量 就是 我们一个三维物体 顶点垂直于面 的方向 向量 他的作用 用来做光反射 根据光照的方向 根据面进行反射 我们上文写的这个代码 import ./style.css import * as THREE from "three"; import { OrbitControls } from "…

springcloud之Feign超时提示Read timed out executing POST

问题描述&#xff1a; Feign接口调用分两层&#xff0c;Ribbon的调用和Hystrix调用&#xff0c;理论上设置Ribbon的时间即可&#xff0c;但是Ribbon的超时时间和Hystrix的超时时间需要结合起来&#xff0c;按照木桶原则最低的就是Feign的超时时间&#xff0c;建议最好配置超时…

R语言频率分布直方图绘制教程

本篇笔记分享R语言绘制直方图的方法&#xff0c;通过多种展示风格对数据进行可视化&#xff0c;主要用到ggplot、ggpubr等包。 什么是直方图&#xff1f; 直方图(Histogram)&#xff0c;又称质量分布图&#xff0c;是一种统计报告图&#xff0c;由一系列高度不等的柱子表示数据…

openCV入门

简介 本文主要通过对啥都会一点研究生系列进行总结&#xff0c;对关键代码进行注释&#xff0c;方便使用以及复习。 1 基础功能 1.1.显示图片 import cv2 # 读取图片 img cv2.imread("Resources/lena.png") # 显示图片 cv2.imshow("Lena Soderberg",img…

【Java集合类篇】HashMap的数据结构是怎样的?

HashMap的数据结构是怎样的? ✔️HashMap的数据结构✔️ 数组✔️ 链表 ✔️HashMap的数据结构 在Java中&#xff0c;保存数据有两种比较简单的数据结构: 数组和链表&#xff08;或红黑树&#xff09;。 HashMap是 Java 中常用的数据结构&#xff0c;它实现了 Map 接口。Has…

STM32 CubeMX产生的程序架构

使用STM32CubeMX产生启动相关代码&#xff0c;配置各种外设。在后续程序开发过程中&#xff0c;有可能使用STM32CubeMX逐步产生使用的代码&#xff0c;为了将其产生的代码和我们程序隔离&#xff0c;一种可行的程序架构如下&#xff1a; 在此架构中&#xff0c;STM32CubeMX产生…

GraphQL和REST API的区别

我的新书《Android App开发入门与实战》已于2020年8月由人民邮电出版社出版&#xff0c;欢迎购买。点击进入详情 GraphQL&#xff08;Graph Query Language&#xff09;和REST&#xff08;Representational State Transfer&#xff09;是两种用于构建和设计API的不同方法。以下…