感觉定义要比PYTHON严谨很多,一切源于静态语言的特点吧。。

于是语法上就复杂很多,值不值得呢?

参考测试URL:

http://www.cnblogs.com/lwbqqyumidi/p/3837629.html

import java.util.*;

public class TestCollection {
  public static void main(String args[]) {
    List<String> list = new ArrayList<String>();
    list.add("QQYmydmidi");
    list.add("corn");
    //list.add(100);

    for (int i=0; i < list.size(); i++) {
      String name = (String) list.get(i);
      System.out.println("name: " + name);
    }

    Box<String> name = new Box<String>("coooorn");
    Box<Integer> age = new Box<Integer>(712);
    Box<Number> number = new Box<Number>(314);
    System.out.println("name: " + name.getData());
    System.out.println("age: " + age.getData());

    System.out.println("name class: " + name.getClass());
    System.out.println("age class: " + age.getClass());
    System.out.println(name.getClass() == age.getClass());

    getData(name);
    getData(age);
    getData(number);

    //getUpperNumberData(name);
    getUpperNumberData(age);
    getUpperNumberData(number);
  }
  public static void getData(Box<?> data) {
    System.out.println("data: " + data.getData());
  }
  public static void getUpperNumberData(Box<? extends Number> data) {
    System.out.println("data: " + data.getData());
  }
}

class Box<T> {
  private T data;
  public Box(){};

  public Box(T data) {
    this.data = data;
  }
  public T getData() {
    return data;
  }
}

JAVA集合泛型,类型擦除,类型通配符上限之类的知识点的更多相关文章

  1. JAVA泛型之<? extends T>:(通配符上限)和<? super T>(通配符下限)

    一.通配符上限和通配符下限接受的类型 通配符上限:<? extends T> 通配符下限:<? super T> 以下代码是测试结果,注释为解释说明 package xayd. ...

  2. Redis序列化存储Java集合List等自定义类型

    在"Redis学习总结和相关资料"http://blog.csdn.net/fansunion/article/details/49278209 这篇文章中,对Redis做了总体的 ...

  3. java利用泛型实现不同类型可变参数

    public class VP { public <T> void printMsg(T... args){ for (T t:args){ System.out.println(&quo ...

  4. java获取泛型的真实类型

    ParameterizedType type = (ParameterizedType)this.getClass().getGenericSuperclass(); Type[] actualTyp ...

  5. Java 泛型 四 基本用法与类型擦除

    简介 Java 在 1.5 引入了泛型机制,泛型本质是参数化类型,也就是说变量的类型是一个参数,在使用时再指定为具体类型.泛型可以用于类.接口.方法,通过使用泛型可以使代码更简单.安全.然而 Java ...

  6. 初探Java类型擦除

    本篇博客主要介绍了Java类型擦除的定义,详细的介绍了类型擦除在Java中所出现的场景. 1. 什么是类型擦除 为了让你们快速的对类型擦除有一个印象,首先举一个很简单也很经典的例子. // 指定泛型为 ...

  7. Java中如何获取一个类中泛型的实际类型

    本文链接:https://blog.csdn.net/kuuumo/article/details/83021158   _______________________________________ ...

  8. 【一天一个基础系列】- java之泛型篇

    简介 说起各种高级语言,不得不谈泛型,当我们在使用java集合的时候,会发现集合有个缺点:把一个对象"丢进"集合之后,集合就会"忘记"这个对象的数据类型,当再次 ...

  9. 和我一起学Effective Java之泛型

    泛型 不要在新代码中使用原始类型 泛型(generic):声明中具有一个或多个类型参数 原始类型(raw type):不带任何实际类型参数的泛型名称 格式: 类或接口的名称 < 对应于泛型形式类 ...

随机推荐

  1. FFT模板——copied from hzwer

    /* Welcome Hacking Wish You High Rating */ #include<iostream> #include<cstdio> #include& ...

  2. C++ 对象的赋值和复制 基本的

    对象的赋值 如果对一个类定义了两个或多个对象,则这些对象之间是可以进行赋值,或者说,一个对象的值可以赋值给另一个同类的对象.这里所指的值是指对象中所有数       据的成员的值.对象之间进行赋值是“ ...

  3. springboot配置过滤器和拦截器

    import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.Http ...

  4. String,创建对象问题

    String str=new String("aaa"); 这行代码究竟创建了几个String对象呢?答案是2个,而不是3个.由于new String("aaa" ...

  5. EasyUI 编写实体类树状选择器

    <%@ page contentType="text/html;charset=UTF-8"%> <%@ include file="/WEB-INF/ ...

  6. 复习HTML+CSS(7)

    n  HTML 注释 <--! 注释内容 --> 注意:注释内容不会显示,注释是为了将来维护方面. n  图片热点(图像地图) 图像热点:给一张图片加多个链接,默认情况下,一张图片只能加一 ...

  7. Django中关于MySQL的bug总结

    bug one: You are trying to add a non-nullable field 'height' to person without a default; we can't d ...

  8. 学习廖雪峰的Python教程之数据类型

    数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同的数据,需要定 ...

  9. AI.框架理论.语义网.语言间距.孤单

    刷个博客,转载自于科学网:AI.框架理论.语义网.语言间距.孤单 一:引言: AI几乎是计算机科学家的梦想,自动化比计算机发展的要早的多.早期的自动化节省了大量人力,激发了人类懒惰的滋长和对自身进化缓 ...

  10. Photoshop显示RGB值问题

    Bmp与JPEG格式的不同之处在哪里? 使用OpenCV读写图像,然后由Photoshop显示时候结果并不相同,使用jpg格式的图像灰度值明显大于bmp格式,但jpg格式的显示信息是错误的. 过程: ...