黑马程序员技术交流社区

标题: java带泛型的函数是否必须在使用时申明泛型类型? [打印本页]

作者: 埗箬    时间: 2015-3-30 17:56
标题: java带泛型的函数是否必须在使用时申明泛型类型?
本帖最后由 埗箬 于 2015-3-30 18:00 编辑

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


作者: JarryHorse    时间: 2015-3-30 21:07
本帖最后由 JarryHorse 于 2015-3-30 21:10 编辑

泛型是一种保护机制,可以把可能在运行时发生的异常提前到编译时被发现(比如类型不匹配),你不声明也是没有问题的,不过系统会提示”使用了未经检或查不安全的操作“,但是编译是可以通过的,不会报错,但实际运用时建议使用泛型,可以减少运行时错误
作者: hhh233    时间: 2015-3-30 21:35
不用也可以
作者: 埗箬    时间: 2015-4-3 11:37
hhh233 发表于 2015-3-30 21:35
不用也可以

也就是说,上面如果定义了类型的话(用泛型,或者直接定义),那么下面不申明的话,定义过泛型的函数,在使用的时候也会自动来检查是否类型匹配?
作者: 快乐ABC    时间: 2015-4-3 13:18
不用也可以的,使用带了声明泛型的函数,如果你不写泛型的在编译的时候会报一个“使用了未经检查或者不安全的操作”,但是可以编译通过。但是运行时,就会检查发现类型不匹配,就会报错。所以我们可以调用函数时,写上泛型的类型,这样检查类型操作就提前到了编译时期,如果类型不兼容,编译就会报错。程序员可以在编译期,及可能多的改掉错误。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2