A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 埗箬 于 2015-3-30 18:00 编辑

如题,java带泛型的函数是否必须在使用时申明泛型类型?我发现每次都声明,实在是太繁琐了。。比如这样的就比较麻烦:
  1. int m =Collections.binarySearch<String>(t1,ser);
复制代码

4 个回复

倒序浏览
本帖最后由 JarryHorse 于 2015-3-30 21:10 编辑

泛型是一种保护机制,可以把可能在运行时发生的异常提前到编译时被发现(比如类型不匹配),你不声明也是没有问题的,不过系统会提示”使用了未经检或查不安全的操作“,但是编译是可以通过的,不会报错,但实际运用时建议使用泛型,可以减少运行时错误
回复 使用道具 举报
不用也可以
回复 使用道具 举报

也就是说,上面如果定义了类型的话(用泛型,或者直接定义),那么下面不申明的话,定义过泛型的函数,在使用的时候也会自动来检查是否类型匹配?
回复 使用道具 举报
不用也可以的,使用带了声明泛型的函数,如果你不写泛型的在编译的时候会报一个“使用了未经检查或者不安全的操作”,但是可以编译通过。但是运行时,就会检查发现类型不匹配,就会报错。所以我们可以调用函数时,写上泛型的类型,这样检查类型操作就提前到了编译时期,如果类型不兼容,编译就会报错。程序员可以在编译期,及可能多的改掉错误。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马