Tag: 注释

如何创建Kotlin Annotation嵌套类

在Java中,可以创建类似的东西 public @interface MyAnnotation { enum AnnotationOption { ONE, TWO, THREE } AnnotationOption value(); } 如果不创建一个名为MyAnnotation的包,那么在Kotlin中是否有一个等价的注释类不能拥有一个body? 可能有点像 annotation class MyAnnotation(val value: MyAnnotation.AnnotationOption) enum class MyAnnotation.AnnotationOption { ONE, TWO, THREE }

注释生成的Java源可空性(对于Kotlin)

我使用源代码生成工具( antlr )为我的项目生成Java源文件。 但是,我写的大部分,如果不是全部我的代码,在Kotlin。 Kotlin已经提供了很好的Java互操作性 ,所以使用生成的源代码不是问题。 但是,由于Kotlin如何将Java的可空types引入一个无效的系统 ,所以我失去了大部分使用Kotlin的无效安全性。 最好的我有平台types警告(使types明确,以避免微妙的错误); 最糟糕的是我有意外的崩溃和微妙的错误。 但是,Kotlin会尊重可空性注释 ,例如JSR-305,FindBugs,Lombok,Eclipse和JetBrains各自的@Nullable / @NonNullforms,将这些forms作为合适的非空types或可选的。 因为代码是生成的,我有权访问源代码(并了解它是如何工作的),所以我知道哪些函数可以/不能返回null ,并且要注释它们,以便将它们整齐地包含到我的空安全代码中。 但是,我不能直接将注释添加到代码中,因为它是在构建步骤中生成的,并会覆盖任何手动更改。 有没有可能/什么是最好的方式来注释生成的Java源的空性为了在空安全代码中使用的目的?

在Kotlin注释不起作用

我试图将我的Android应用程序从Java转换到Kotlin。 对于应用程序快捷方式,我使用易于实现的脆饼库,但在Kotlin中不起作用。 难道我做错了什么 ? Java的: @Shortcut(id = “Camera”, icon = R.drawable.iconshortcut,longLabel = “Instant Scan”, shortLabel = “Scan”) public class CameraActivity extends AppCompatActivity { … Kotlin: @Shortcut(id = “Camera”, icon = R.drawable.iconshortcut, longLabel = “Instant Scan”, shortLabel = “Scan”) class CameraActivity : AppCompatActivity() { … 只要注释是在Java中,而不是在Kotlin中,脆饼就可以工作 Shortbread.create(this)