IDEA中scala生成變量后自動(dòng)顯示變量類型問(wèn)題
idea scala生成變量后自動(dòng)顯示變量類型
在idea中編寫(xiě)scala程序時(shí),按ctrl + alt + v 推導(dǎo)變量的時(shí)候,默認(rèn)是這樣的
def main(args: Array[String]): Unit = { ? ? val ints = List(1,2,3,4,5,6,7,8) ? ? ? // 滑動(dòng) ? ? val unit = ints.sliding(2) ? ? ? unit.foreach(x=>println(x.mkString(","))) ? ? }
這樣的變量都是沒(méi)有標(biāo)明變量類型的,這樣的好處是,修改了“=”號(hào)右邊的返回類型,不用修改左邊,因?yàn)榇藭r(shí)沒(méi)有標(biāo)明類型。但是這樣的壞處就是,有些時(shí)候,邏輯比較復(fù)雜,編譯器并不能非常精確的推斷出當(dāng)前變量的類型。這樣的話,在編譯期間就會(huì)報(bào)錯(cuò),修改起來(lái)也比較麻煩。所以
Ctrl+Alt+V自動(dòng)生成變量后,Specify type選項(xiàng)勾選之后會(huì)顯示出變量的類型,默認(rèn)是沒(méi)有勾選的,為了方便設(shè)置為自動(dòng)勾選,點(diǎn)擊Settings,在Type Annotations選項(xiàng)卡里,勾選Local definition選項(xiàng)。然后再下一次的Specify type選項(xiàng)這里勾選上
然后代碼就成了這樣
def main(args: Array[String]): Unit = { ? ? val ints: List[Int] = List(1,2,3,4,5,6,7,8) ? ? ? // 滑動(dòng) ? ? val unit: Iterator[List[Int]] = ints.sliding(2) ? ? ? unit.foreach(x=>println(x.mkString(","))) ? ? }
----------------------更新----------------------
上面的操作只有在書(shū)寫(xiě)代碼并使用自動(dòng)生成快捷鍵的時(shí)候回生效,但是在工作中經(jīng)常會(huì)看別人的代碼或者源碼,其中還是會(huì)有很多省略了變量類型的變量,按照下面方法設(shè)置
File —> Settings —>Editor —> General —>Appearance
將頁(yè)面中的Show properties type hints(Scala),Show local variable type hints(Scala),Show obvions types(Scala)全部勾選,就可以看到類型提示。
idea 2020.1中如何在寫(xiě)scala變量時(shí)自動(dòng)判斷并帶出變量類型
將idea 升級(jí)到2020.1以后,在寫(xiě)scala代碼的時(shí)候,沒(méi)有自動(dòng)顯示變量的類型,然后上網(wǎng)查了一些設(shè)置顯示scala變量類型的方法,但是都是idea 1.8 以前的,2020.1版本的界面有些不一樣
下面是兩種設(shè)置方式:
IDEA 1.8 以前的設(shè)置
新版IDEA的設(shè)置方式:
我個(gè)人在網(wǎng)上試過(guò)了那些設(shè)置 Type Annotations 的人推薦的方法,并沒(méi)有解決問(wèn)題:
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java與C++分別用遞歸實(shí)現(xiàn)漢諾塔詳解
漢諾塔問(wèn)題是一個(gè)經(jīng)典的問(wèn)題。漢諾塔(Hanoi Tower),又稱河內(nèi)塔,源于印度一個(gè)古老傳說(shuō)。本文將用Java與C++分別實(shí)現(xiàn),感興趣的可以學(xué)習(xí)一下2022-05-05基于Mybatis plus 自動(dòng)代碼生成器的實(shí)現(xiàn)代碼
本文通過(guò)實(shí)例代碼給大家介紹了基于Mybatis-plus 自動(dòng)代碼生成器的相關(guān)知識(shí),非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-05-05詳解Spring Boot 定制HTTP消息轉(zhuǎn)換器
本篇文章主要介紹了詳解Spring Boot 定制HTTP消息轉(zhuǎn)換器,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11Netty學(xué)習(xí)之理解selector原理示例
這篇文章主要為大家介紹了Netty學(xué)習(xí)之理解selector原理示例使用分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪<BR>2023-07-07spring集成httpclient配置的詳細(xì)過(guò)程
spring框架是一個(gè)非常強(qiáng)大的框架這里就不多說(shuō)了,那么主要是介紹spring與httpclient的整合集成過(guò)程,感興趣的朋友跟隨小編一起看看吧2021-07-07Java函數(shù)式編程(三):列表的轉(zhuǎn)化
這篇文章主要介紹了Java函數(shù)式編程(二):列表的轉(zhuǎn)化,lambda表達(dá)式不僅能幫助我們遍歷集合,并且可以進(jìn)行集合的轉(zhuǎn)化,需要的朋友可以參考下2014-09-09Java生成訂單號(hào)或唯一id的高并發(fā)方案(4種方法)
本文主要介紹了Java生成訂單號(hào)或唯一id的高并發(fā)方案,包括4種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-01-01利用Kotlin + Spring Boot實(shí)現(xiàn)后端開(kāi)發(fā)
這篇文章主要給大家介紹了關(guān)于利用Kotlin + Spring Boot實(shí)現(xiàn)后端開(kāi)發(fā)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-11-11Java?synchronized底層實(shí)現(xiàn)原理以及鎖優(yōu)化
Synchronized是Java中解決并發(fā)問(wèn)題的一種最常用的方法,也是最簡(jiǎn)單的一種方法,下面這篇文章主要給大家介紹了關(guān)于Java?synchronized底層實(shí)現(xiàn)原理以及鎖優(yōu)化的相關(guān)資料,需要的朋友可以參考下2022-02-02