java jsr305,JSR305与JSR308(Java类型Anotations) - 哪个将成为标准?

本文介绍了Java中两个重要的注解规范JSR-305和JSR-308。JSR-305用于增强设计契约的程序化可见性,例如标注非空方法或参数。而JSR-308则扩展了注解的应用范围,允许在泛型参数和类型转换上使用。JSR-308将被纳入Java 7,相对更稳定;JSR-305则可能不会出现在Java 7中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

There seem to be two different JSRs for annotations.

Both seem to be oriented towards static code analysis.

Do you know:

which of the both is going to be either in Java SE 7 or Java EE 6?

how "stable" is each JSR?

does the one supersedes (or obsoletes) the other?

解决方案

I can answer your last question. They are not the same thing. 305 is about new annotations where you can already put them, which can help provide programmatic visibility into a design by contract system. So that if a certain method is supposed to not return null, or if a certain method is supposed to never receive a null parameter, it is possible to tell the system analyzing the annotations to look out for this specific case at this piece of code.

308 is about being able to annotate more things, such as a generic parameter and a type cast. I imagine a primary use for that is to be able to suppress warning on a specific type cast, instead of having to declare a local variable for that purpose. The @SuppressWarnings annotation already exists (whereas JSR-305 would look to define new ones), but in JSR-308 it could be applied to more cases.

According to this 308 will be part of Java7, which would imply it is quite well along to being stable. JSR-305 isn't on the list, so it doesn't look like it will make it to Java7.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值