Tag: annotations

@Throws在目标是属性时不起作用

在看这个问题的时候 ,我注意到将@Throws应用到get或set use-site没有任何作用。 此外, @Throws 的唯一有效目标是AnnotationTarget.FUNCTION , AnnotationTarget.PROPERTY_GETTER , AnnotationTarget.PROPERTY_SETTER和AnnotationTarget.CONSTRUCTOR 。 其他注释,如JPA批注和Deprecated工作正常,并适用于该方法! 这是奇怪的行为。 为了演示,我用Java创建了一个简单的抽象类,有一个构造函数,一个方法和一个get方法。 public abstract class JavaAbstractClass { @Deprecated @NotNull public abstract String getString() throws IOException; public abstract void setString(@NotNull String string) throws IOException; public abstract void throwsFunction() throws IOException; public JavaAbstractClass() throws IOException { } } 正如你所看到的,每个方法/构造函数都被标记为抛出IOException 。 但是,当我尝试在Kotlin中编写一个等同的类,并用互斥标记相应的方法时,生成的getString和setString方法没有throws子句。 abstract class KotlinAbstractClass @Throws(IOException::class) […]