源起:查看COLLECIOTNS类

Q1:为什么java需要泛型?

  因为java对于对象类型的确认在编译期,那么强制类型转换就可以通过编译,但是运行时的错误却无法避免,那么泛型的存在可以避免强制类型转换的出现。  

public class TestGeneric {

    static A<Integer> setInteger(){
A<Integer>a = new A<Integer>(4);
return a; }
static A<Number> setNumber(){
A<Number>b = new A<Number>(6);
return b; }
public static void main(String args[]){
setInteger();
setNumber();
System.out.println("a"+setInteger().getClass());
System.out.println("b"+setNumber().getClass());
} }
class A<E>{
private E a;
private E b;
public E getA() {
return a;
}
public void setA(E a) {
this.a = a;
}
public E getB() {
return b;
}
public void setB(E b) {
this.b = b;
}
public A(E e){
this.a = e;
this.b = e;
} }

我的理解,泛型作用于一个对象的属性。

Q2:网上谈到A<Number>及B<Integer>是否存在继承关系。我的理解不存在这里泛型作用域类的对象的属性。而不是重新定义这个类。

Q3: 关于泛型通配符的使用。

//使用泛型通配符
static void getA(A<?>a){
System.out.println("通配符使用"+a.getA());
}
//设置通配符上限
static void upperGetA(A<? extends Number>a){
System.out.println("通配符上限"+a.getB());
}

对于Java泛型的理解的更多相关文章

  1. 对java泛型的理解

    正确的应用java泛型的特性可以更好的实现编程的开闭原则(对扩展开放,对修改关闭),这得益于java泛型提供的在程序运行时获取对象声明类型的特性. 静态语言的特性是在程序编译前进行声明,这样程序在编译 ...

  2. java泛型的理解

    总体介绍泛型: 1.泛型是计算机程序中一种重要的思维方式,它将数据结构和算法与数据类型相分离,使得同一套数据结构和算法,能够应用于各种数据类型,而且还可以保证类型安全,提高可读性.在Java中,泛型广 ...

  3. Java泛型深入理解(转载)

    原文地址  http://blog.csdn.net/sunxianghuang/article/details/51982979 泛型之前 在面向对象编程语言中,多态算是一种泛化机制.例如,你可以将 ...

  4. Java:泛型的理解

    本文源自参考<Think in Java>,多篇博文以及阅读源码的总结 前言 Java中的泛型每各人都在使用,但是它底层的实现方法是什么呢,为何要这样实现,这样实现的优缺点有哪些,怎么解决 ...

  5. Java泛型深入理解

    泛型的优点: 泛型的主要优点就是让编译器保留參数的类型信息,执行类型检查,执行类型转换(casting)操作,编译器保证了这些类型转换(casting)的绝对无误. /******* 不使用泛型类型 ...

  6. 你对Java泛型的理解够深入吗?

    泛型 泛型提供了一种将集合类型传达给编译器的方法,一旦编译器知道了集合元素的类型,编译器就可以对其类型进行检查,做类型约束. 在没有泛型之前: /** * 迭代 Collection ,注意 Coll ...

  7. Java泛型简单理解

    优点1: 没有使用泛型,向list集合中添加非字符串,运行时会报错:类型不匹配 ObjectList.java: package cn.nxl2018; import java.util.ArrayL ...

  8. 关于Java泛型深入理解小总结

    1.何为泛型 首先泛型的本质便是类型参数化,通俗的说就是用一个变量来表示类型,这个类型可以是String,Integer等等不确定,表明可接受的类型,原理类似如下代码 int pattern; //声 ...

  9. java 泛型的理解与应用

    为什么使用泛型? 举个例子: public class GenericTest { public static void main(String[] args) { List list = new A ...

随机推荐

  1. ice grid 完整部署过程

    待补充 一 理论准备 一个IceGrid集群有一个registry(注册表,用于定位)和多个node组成. IceGrid配置包括集群配置和应用配置: config.grid是集群配置,配置Regis ...

  2. Grunt 入门

    转自:http://user.qzone.qq.com/174629171/blog/1404433906 Grunt被定义为:the javascript task runner. 什么算是Java ...

  3. 用HTML 格式导出Excel

    只需按照如下格式写就可,在<head> 里面嵌套table,必须修改html的命名空间,加上一些描述.保存为xls文件 <html xmlns:x="urn:schemas ...

  4. Salesforce开发者学习笔记之二:Salesforce开发平台应用场景

    Salesforce作为一个全方位的CRM系统可以应用于企业中的各个不同部门以取代手工的,耗时的以及低效的业务流程,例如 基于报表的数据管理和分析 基于电子邮件的协同合作 本地的文件共享 各种手工操作 ...

  5. 我推荐的一些iOS开发书单

    文/叶孤城___(简书作者)原文链接:http://www.jianshu.com/p/2fa080673842著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 上次发了一下比较不错的i ...

  6. java 测试IP

    public static long calSpeed(String ip) { Runtime runtime = Runtime.getRuntime(); // 获取当前程序的运行进对象 Pro ...

  7. Sublime Text 快捷键--持续更新

    快捷键 功能 说明 ctrl+D 选取一个单词连续按组合键会选择页面所有相同的这个单词   ctrl+Z 撤销上一个操作   ctrl+Y 恢复上一个操作   ctrl+shift+F 底部打开搜索全 ...

  8. Linux - tomcat -jndi数据源配置

    Linux - tomcat -jndi数据源配置 tomcat/conf/context .xml 文件中修改如下 <Resource name="/jdbc/--" au ...

  9. win8.1 64位+oracle11g R2 64位 +powerdesigner破解版 64位+PL/SQL

    安装时搜索了很多帖子,很多就是复制粘贴(完全不需要什么IP,host),有的版本不对,有的版本太老,今天决定贴出自己的处女贴 oracle的安装很简单,不需要说什么了,PL/SQL真是恶心死 orac ...

  10. Firefox恢复书签

    Firefox虽然有网络同步功能,但是网络账户中没有保存历史书签.一旦电脑故障,书签可能会丢失,更要命的是自动同步後,网上书签也被覆盖的一干二净.怎么办呢? 大多数时候还是可以在本机找回书签 1:打开 ...