java 新手提问:有些语法看不太明白,望高手帮忙

2608 Arc 服务器端工程师  2015-03-16 05:01:01
如下的java代码:

1.
public <T> Pair<T, T> somefounction(@Nonnull Reader myreader)
{
...
}

这其中的 @Nonnull 的作用是什么,它是对 myreader 有什么限制吗?

2.
Set<Class<?>> someSet = new HashSet<Class<?>>

我该怎么理解这段代码,Set中的类型是什么? 其中的那个问号是什么意思?
...全文
218 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
日知己所无 2015-03-29
第一个@Nonnull是Java语言的注解(Annotations)【注意不是注释(Comment)】 注解由@开头,常见用法有三种: 1)给编译器提供一些信息,以在编译时发现错误或者屏蔽一些警告 2)编译时或者发布时进行一些处理,比如生成一些代码或者XML文件什么的 3)在运行时做一些检查 这里的@Nonnull应该是Eclipse自带的参数检查用的插件, 保存在【eclipse/plugins/org.eclipse.jdt.annotation_*.jar】里面 核心思想来自于契约编程(Design-by-Contract) 如果你能确保调用方法时,参数永远都不会为null的话,你自己的程序里就不用再检查一遍参数是否为null了。 这个@Nonnull就是确保调用方的参数永远都不会为null用的 参考:【http://docs.oracle.com/javase/tutorial/java/annotations/index.html】 参考:【http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Ftasks%2Ftask-using_null_annotations.htm】
回复
婷baby1110 2015-03-28
第二个是java泛型,第一个是什么我也不是很懂,也属于初学,不过感觉可以忽略他,类似于备注用的
回复
code小生 2015-03-28
第二个是java泛型的知识,若是新手应该还没有接触到吧
回复
飏飏一蝶 2015-03-16
第一个是Annotation的内容 不影响编译,编译忽略掉,只有在测试时才起作用 代表本地变量不能为null 没实践过,理解可能肤浅 第二个Set集中元素为Class<?>类型,?代表任意 类,不管你是Class<String>也好,Class<Test>也好 只要是类的Class对象就行 可以限制更严啊,比如? extends A 这个是相对宽泛的限制
回复
相关推荐
发帖
Java EE
创建于2007-09-28

6.6w+

社区成员

J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
申请成为版主
帖子事件
创建了帖子
2015-03-16 05:01
社区公告
暂无公告