Android studio 在IntelliJ或Android Studio中如何识别函数调用和类实例化?

Android studio 在IntelliJ或Android Studio中如何识别函数调用和类实例化?,android-studio,kotlin,intellij-idea,Android Studio,Kotlin,Intellij Idea,我在Android中学习了Kotlin,但很多代码都是废弃的,因为我无法识别某些代码何时作为调用函数或实例化类 代码不起作用,但例如: 类Boo{ val callFromFoo:Int=Foo(1) val instancefo:Foo=Foo(2) fun Foo(id:Int):Int{ 返回id } } 类Foo(valid:Int) 我很担心,因为调用Foo(1)和实例化Foo(2)是相同的代码,没有IDE识别差异。 注意:显式声明在Kotlin中不是标准的。如果您在同一文件/包中有

我在Android中学习了Kotlin,但很多代码都是废弃的,因为我无法识别某些代码何时作为调用函数或实例化类

代码不起作用,但例如:

类Boo{
val callFromFoo:Int=Foo(1)
val instancefo:Foo=Foo(2)
fun Foo(id:Int):Int{
返回id
}
}
类Foo(valid:Int)
我很担心,因为调用Foo(1)和实例化Foo(2)是相同的代码,没有IDE识别差异。

注意:显式声明在Kotlin中不是标准的。

如果您在同一文件/包中有类,您可以像这样使用反射:

类Boo{
val callFromFoo:Int=Foo(1)
val instancefo:Foo=requireNotNull(Foo::class.primaryConstructor)。调用(2)
fun Foo(id:Int):Int{
返回id
}
}
类Foo(valid:Int)
如果这些类位于不同的包中,则可以实例化指定该包的对象。像这样:

类Boo{
val callFromFoo:Int=Foo(1)
val instancefo:Foo=com.android.example.package2.Foo(2)
fun Foo(id:Int):Int{
返回id
}
}
我不推荐这两种解决方案中的任何一种

请注意,类通常是名词,如
Navigator
LoginUseCase
User
Logger
等,函数通常是动词或至少使用动词,如
navigateTo()
login()
processData()
log()
等等。我认为他们不应该有相同的名字

此外,我认为您使用的编码风格与Kotlin不太匹配。这将在函数和类之间造成不必要的混淆,即使它们有不同的名称。我建议你按照计划去做。函数名以小写字母开头,类名以大写字母开头,以避免混淆

更新

如果您想坚持自己的编码惯例并区分构造函数调用和函数调用,您可以在AndroidStudio或IntelliJ中为每个调用选择不同的颜色

Android Studio/IntelliJ:
文件>设置>编辑器>配色方案>Kotlin

结果:

谢谢Sharma,我是C#程序员,这是另一种编码风格。科特林对我来说不是天生的,这就是为什么我在寻找另一种更好的适应方式IDE@Abedron我已经更新了答案,包括一个涉及IDE的解决方案。我也是一名C#程序员。我刚刚给科特林写了几个月。在我看来,习惯用小写写函数名比习惯任何IDE解决方案都要容易。谢谢,这要好多了;)