2 sinat 25136209 sinat_25136209 于 2016.09.19 17:12 提问

关于泛型的小问题一个

public class Student {

public String id;

public String name;

public Set<Course> courses;就是这里有疑问

public Student(String id, String name) {
    this.id = id;
    this.name = name;
    this.courses = new HashSet<Course>();
}

}

package com.imooc.collection;

/**

  • 课程类
  • @author Administrator
    *
    */
    public class Course {

    public String id;

    public String name;

    public Course(String id, String name) {
    this.id = id ;

    this.name = name;
    

    }

    public Course() {

    }
    }
    为什么在student类中定义的时候,public Set courses; set中的菱形括号
    可以写Course类??菱形括号里面不是只能写类型么?

6个回答

u013076997
u013076997   2016.09.19 17:46
已采纳

自己创建的Course对象也是属于引用类型的,本质上和String,Integer等都是一样的,你看一下jdk的源码就知道了,String,Integer等也是一个类,只不过是被封装成了jar包而已

sinat_25136209
sinat_25136209 谢谢~~~
接近 2 年之前 回复
qgfjeahn
qgfjeahn   2016.09.19 17:50

尖括号中放的是数据类型,Course是你建的一个类,它也是一个引用数据类型,Set表示Set集合中只能放入Course类型的对象.这是泛型在集合中最常见的一种体现,保证了集合的安全性,在遍历集合时,取到的对象类型为尖括号中指定的类型,不是Object类型,因此不用强制类型转换.

shihengzhen101
shihengzhen101   Rxr 2016.09.19 17:27

你指的类型是什么?是int?是double?
按照一般理解来说类也是一种类型,只不过是自定义的,当然可以放在<>中了

StaticFinal520
StaticFinal520   2016.09.19 18:25

public Set course;
Course是 Set的泛型,约束 存入到该Set 的数据类型只能是Course类型的,因为泛型可是基本类型也可以是引用类型。
而 Set 是变量 course的类型,这是引用类型,变量的类型可以是引用类型也可以是基本类型。

qq_29594393
qq_29594393   Ds   Rxr 2016.09.19 17:21

不仅仅是类型,也可以是一个对象,

Mr_dsw
Mr_dsw   Ds   Rxr 2016.09.19 22:29

这个是泛型吧!泛型可以

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
关于泛型和重载的小问题
 首先描述问题,看代码。代码例子:view plaincopy to clipboardprint?import java.util.ArrayList;   public class Test {       public static String test(ArrayList list){           return "";       }       public static Integer test(ArrayList list){           return 1;       } 
关于Java泛型的面试题
1. Java中的泛型是什么 ? 使用泛型的好处是什么? 这是在各种Java泛型面试中,一开场你就会被问到的问题中的一个,主要集中在初级和中级面试中。那些拥有Java1.4或更早版本的开发背景的人 都知道,在集合中存储对象并在使用前进行类型转换是多么的不方便。泛型防止了那种情况的发生。它提供了编译期的类型安全,确保你只能把正确类型的对象放入 集合中,避免了在运行时出现ClassCastE
java 一个关于泛型的简单例子
java 一个关于泛型的简单例子 java 一个关于泛型的简单例子 java 一个关于泛型的简单例子
AMDD 一个把大问题分成小问题的优化算法
还没看懂,先记下地址“ 这个博客上有基础知识: http://www.cnblogs.com/breezedeus/p/3496819.html 下面是AMDD http://web.stanford.edu/~boyd/admm.html
开发积累—泛型工具类
前言:使用SSH2中使用的泛型工具类,以前写泛型比较麻烦。今天收集到一个工具类,好东呀!!分享给大家,绝对有用。JAVA版的web应用程序使用。
一个有趣的小问题
有兄弟三人:大毛,二毛,三毛。有帽子五顶:三顶蓝色,两顶红色。将这五顶帽子随机发给三个 兄弟,三兄弟站成一列,后面的人能看见站在他前面的人,按大毛、二毛、三毛的顺序站好。 帽子分发好后,大毛问三毛:你知道你的帽子是什么颜色的吗? 三毛说:我不知道。
最简单实用的泛型(创建集合)
这是我的创建集合的方法,放在base类里 publicT> ListT> initList(T...t) { ListT> list = new ArrayList; for (T mT : t) { list.add(mT); } return list; } 使用 fragmentList = initList(new Comp
java 集合泛型案例说明
集合的概念 现实生活中:很多的食物凑在一起 数学中的集合:具有共同体属性的事物 的总体 java中的集合类:是一种工具类,就像是容器,储存任意数量的共同属性的对象集合的作用 在类的内部,对数据进行组织; 简单而快捷的搜索大数量的条目 有的集合接口,提供一系列排列有序的元素,并且可以序列钟健快速的插入或者删除有关元素 有的集合接口,提供了映射关系,可以通过关键字key去快速查找到对应的唯
帮助你学习泛型的一个小测试题
下面这段代码哪些地方有编译时错误: public static void main(String[] args){ List list1 = new ArrayList(); list1.add("10"); list1.add("20"); sumOfList2(list1); List list2 = new ArrayList(); list2.add(10); list
12种泛型面试题
1. Java中的泛型是什么 ? 使用泛型的好处是什么? 这是在各种Java泛型面试中,一开场你就会被问到的问题中的一个,主要集中在初级和中级面试中。那些拥有Java1.4或更早版本的开发背景的人都知道,在集合中存储对象并在使用前进行类型转换是多么的不方便。泛型防止了那种情况的发生。它提供了编译期的类型安全,确保你只能把正确类型的对象放入集合中,避免了在运行时出现ClassCastExcep