首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >重构Kotlin代码时缺少导入的AndroidStudio3.0预览

重构Kotlin代码时缺少导入的AndroidStudio3.0预览
EN

Stack Overflow用户
提问于 2017-05-23 11:34:01
回答 4查看 1.1K关注 0票数 15

每当我试图在AndroidStudio3.0上重构Koltin代码时,它只需删除我所有的“顶级”导入,并开始使用"inplace“导入。

对于重构,我的意思是,在这种情况下,移动代码。假设我在com.myapp包下有一个类。如果我把它移到com.myapp.anotherpackage,这个问题就会发生

关于这一点的有趣的事实似乎只有在同时移动多个文件时才会发生

它看起来是什么样子:

代码语言:javascript
运行
复制
//Before refactoring I have this import
import android.support.v7.app.AppCompatActivity;

class MyActivity : AppCompatActivity() {
    //code
}

然后在重构之后,它会像这样

代码语言:javascript
运行
复制
//"top level" import is gone

class MyActivity : android.support.v7.app.AppCompatActivity() { //"inline" import
    //code
}

如果我不得不再次重构代码,情况会变得更糟,因为每个导入都是“内联”的,android不会重构这些代码,我必须手工修复它们。这已经很烦人了,因为我必须修复100多个这些。对如何解决这个问题有什么想法吗?

EN

回答 4

Stack Overflow用户

发布于 2017-05-23 12:19:03

这与不久前修复的bug非常相似。与As3.0预览捆绑在一起的Kotlin插件还没有包含相关的更改。但它们将在下一次插件更新中获得。

票数 2
EN

Stack Overflow用户

发布于 2017-06-01 12:18:40

入党有点晚了,不过,无论如何。Kotlin是一种相对较新的语言(仅在一个月前,它已经成为安卓系统的官方语言),因此JetBrains的开发正处于全速发展之中。而且,Android版本(3.0)并不是一个稳定的版本,下面是所有已知的Android问题。检查这些问题,这里

上面写得很清楚:

一些Kotlin不可用的重构 并不是所有的代码重构都适用于Kotlin,尤其是用于Android的代码重构。例如,代码重构以模块化Kotlin cude目前并不适用于Kotlin。

Java友好的Android不熟悉Kotlin的内联功能。由于这是Kotlin中的一个新包含,它使代码更具可读性(真的吗?)但不是那么程序员友好,本身。

话虽如此,现在几乎没有任何源(检查过几个,其他的都是受欢迎的)来确认您的问题是问题,或者是Kotlin对Java的改进(同样也是很有争议的),因为inline-ing本来是一个改进的功能。

现在,是时候用正式的标记来处理这个特性了。

票数 1
EN

Stack Overflow用户

发布于 2017-05-30 17:14:22

看起来它可能是一个bug --我设法在IntelliJ中重新创建了这个问题,并创建了这个bug报告:https://youtrack.jetbrains.com/issue/KT-18205

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44133672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档