本申請(qǐng)涉及數(shù)據(jù)處理,尤其涉及到一種java注解轉(zhuǎn)換方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)。
背景技術(shù):
1、在java中,注解(annotations)是一種代碼級(jí)別的元數(shù)據(jù)(metadata),它們提供了一種在編譯時(shí)或運(yùn)行時(shí)向程序添加信息的方式。注解可以用來(lái)增強(qiáng)代碼的可讀性、可維護(hù)性,以及為框架和工具提供元數(shù)據(jù)。在代碼的注解體系發(fā)生變化時(shí),需要在兩種注解體系間進(jìn)行注解轉(zhuǎn)換。
2、目前在進(jìn)行java注解轉(zhuǎn)換時(shí),往往需要人工進(jìn)行轉(zhuǎn)換。然而人工轉(zhuǎn)換是一個(gè)繁瑣且容易出錯(cuò)的過(guò)程。開(kāi)發(fā)者需要熟悉兩種注解體系的語(yǔ)法和語(yǔ)義差異,手動(dòng)修改每一處注解,這不僅耗時(shí),而且由于人為因素,很容易引入錯(cuò)誤。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明提供一種java注解轉(zhuǎn)換方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì),可在提高java注解轉(zhuǎn)換效率的同時(shí),保證注解轉(zhuǎn)換的精準(zhǔn)度。
2、第一方面,提供一種java注解轉(zhuǎn)換方法,方法應(yīng)用于java注解轉(zhuǎn)換系統(tǒng),java注解轉(zhuǎn)換系統(tǒng)內(nèi)部配置有源代碼抽取器、注解轉(zhuǎn)換器集合以及源代碼加載器,其中,注解轉(zhuǎn)換器集合中包含多個(gè)轉(zhuǎn)換器,java注解轉(zhuǎn)換方法包括:
3、利用源代碼抽取器抽取第一注解體系下第一java源代碼的第一注解數(shù)據(jù)以及第一注解數(shù)據(jù)對(duì)應(yīng)的第一代碼結(jié)構(gòu)信息;
4、在注解轉(zhuǎn)換器集合中,利用多個(gè)轉(zhuǎn)換器將第一注解數(shù)據(jù)轉(zhuǎn)換為第二注解體系下的第二注解數(shù)據(jù);
5、基于第一代碼結(jié)構(gòu)信息,利用源代碼加載器組合第二注解數(shù)據(jù)和第一java源代碼中的固定代碼數(shù)據(jù),得到第二注解體系下的第二java源代碼。
6、第二方面,提供一種java注解轉(zhuǎn)換裝置,裝置應(yīng)用于java注解轉(zhuǎn)換系統(tǒng),java注解轉(zhuǎn)換系統(tǒng)內(nèi)部配置有源代碼抽取器、注解轉(zhuǎn)換器集合以及源代碼加載器,其中,注解轉(zhuǎn)換器集合中包含多個(gè)轉(zhuǎn)換器,java注解轉(zhuǎn)換裝置包括:
7、抽取模塊,用于利用源代碼抽取器抽取第一注解體系下第一java源代碼的第一注解數(shù)據(jù)以及第一注解數(shù)據(jù)對(duì)應(yīng)的第一代碼結(jié)構(gòu)信息;
8、轉(zhuǎn)換模塊,用于在注解轉(zhuǎn)換器集合中,利用多個(gè)轉(zhuǎn)換器將第一注解數(shù)據(jù)轉(zhuǎn)換為第二注解體系下的第二注解數(shù)據(jù);
9、組合模塊,用于基于第一代碼結(jié)構(gòu)信息,利用源代碼加載器組合第二注解數(shù)據(jù)和第一java源代碼中的固定代碼數(shù)據(jù),得到第二注解體系下的第二java源代碼。
10、第三方面,提供一種電子設(shè)備,包括:處理器和存儲(chǔ)器,該存儲(chǔ)器用于存儲(chǔ)計(jì)算機(jī)程序,該處理器用于調(diào)用并運(yùn)行該存儲(chǔ)器中存儲(chǔ)的計(jì)算機(jī)程序,執(zhí)行如第一方面或其各實(shí)現(xiàn)方式中的方法。
11、第四方面,提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),用于存儲(chǔ)計(jì)算機(jī)程序,計(jì)算機(jī)程序使得計(jì)算機(jī)執(zhí)行如第一方面或其各實(shí)現(xiàn)方式中的方法。
12、通過(guò)本發(fā)明提供的技術(shù)方案,可首先在第一java源代碼中利用源代碼抽取器,抽取待進(jìn)行注解轉(zhuǎn)換的第一注解數(shù)據(jù)以及第一注解數(shù)據(jù)對(duì)應(yīng)的第一代碼結(jié)構(gòu)信息;之后利用注解轉(zhuǎn)換器集合中配置的多個(gè)轉(zhuǎn)換器將第一注解數(shù)據(jù)轉(zhuǎn)換為第二注解體系下的第二注解數(shù)據(jù);最后基于第一代碼結(jié)構(gòu)信息,利用源代碼加載器組合第二注解數(shù)據(jù)和第一java源代碼中的固定代碼數(shù)據(jù),得到第二注解體系下的第二java源代碼。本申請(qǐng)中的技術(shù)方案,可在不破壞原始代碼結(jié)構(gòu)的前提下,實(shí)現(xiàn)對(duì)兩種注解體系下注解數(shù)據(jù)的自動(dòng)化轉(zhuǎn)換,不需要人工參與注解轉(zhuǎn)換過(guò)程,可提高java注解轉(zhuǎn)換效率,保證注解轉(zhuǎn)換的精準(zhǔn)度。
13、應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本發(fā)明。本發(fā)明的其他特征和優(yōu)點(diǎn)將在隨后的具體實(shí)施方式部分予以詳細(xì)說(shuō)明。
1.一種java注解轉(zhuǎn)換方法,其特征在于,所述方法應(yīng)用于java注解轉(zhuǎn)換系統(tǒng),所述java注解轉(zhuǎn)換系統(tǒng)內(nèi)部配置有源代碼抽取器、注解轉(zhuǎn)換器集合以及源代碼加載器,其中,所述注解轉(zhuǎn)換器集合中包含多個(gè)轉(zhuǎn)換器,所述java注解轉(zhuǎn)換方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述利用所述源代碼抽取器抽取第一注解體系下第一java源代碼的第一注解數(shù)據(jù)以及所述第一注解數(shù)據(jù)對(duì)應(yīng)的第一代碼結(jié)構(gòu)信息,包括:
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述多個(gè)轉(zhuǎn)換器包括類依賴轉(zhuǎn)換器以及目標(biāo)注解轉(zhuǎn)換器中的至少一種,所述第一注解數(shù)據(jù)包括第一類依賴以及第一目標(biāo)注解中的至少一種,所述第二注解數(shù)據(jù)包括第二類依賴以及第二目標(biāo)注解中的至少一種;
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述預(yù)設(shè)轉(zhuǎn)換規(guī)則,包括:
5.根據(jù)權(quán)利要求3所述的方法,其特征在于,在所述目標(biāo)注解轉(zhuǎn)換器中,利用其中配置的大語(yǔ)言模型,將所述第一目標(biāo)注解轉(zhuǎn)換為所述第二目標(biāo)注解,包括:
6.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述方法還包括:
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述基于所述第一代碼結(jié)構(gòu)信息,利用所述源代碼加載器組合所述第二注解數(shù)據(jù)和所述第一java源代碼中的固定代碼數(shù)據(jù),得到所述第二注解體系下的第二java源代碼,包括:
8.一種java注解轉(zhuǎn)換裝置,其特征在于,所述裝置應(yīng)用于java注解轉(zhuǎn)換系統(tǒng),所述java注解轉(zhuǎn)換系統(tǒng)內(nèi)部配置有源代碼抽取器、注解轉(zhuǎn)換器集合以及源代碼加載器,其中,所述注解轉(zhuǎn)換器集合中包含多個(gè)轉(zhuǎn)換器,所述java注解轉(zhuǎn)換裝置包括:
9.一種電子設(shè)備,其特征在于,包括:
10.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,用于存儲(chǔ)計(jì)算機(jī)程序,所述計(jì)算機(jī)程序使得計(jì)算機(jī)執(zhí)行如權(quán)利要求1-7中任一項(xiàng)所述的方法。