JAVA问题之继承Comparable的泛型实例

  因为看的是旧书,所以没学习过泛型的内容。导致编译器编写代码的时候老是提示需要对通用类型参数化。今天终于找到一个实例了:

 1 package comparableclass.main;
 2
 3 import com.bruceeckel.util.*;
 4
 5 public class SCompType implements Comparable<SCompType> {
 6     String s1,s2;
 7     public SCompType(String s1i,String s2i){
 8         s1=s1i;
 9         s2=s2i;
10     }
11     @Override
12     public String toString(){
13         return "[s1="+s1+",s2="+s2+"]";
14     }
15
16     public int compareTo(SCompType rv){
17         String rvi=rv.s1;
18         return s1.compareTo(rvi);
19     }
20     private static Arrays2.RandStringGenerator gen=
21             new Arrays2.RandStringGenerator(7);
22     public static Generator generator(){
23         return new Generator(){
24             public Object next(){
25                 return new SCompType((String)gen.next(),(String)gen.next());
26             }
27         };
28     }
29 }
 1 package comparableclass.main;
 2
 3 import com.bruceeckel.util.*;
 4
 5 public class SCompType implements Comparable{//一直提示需要参数化
 6     String s1,s2;
 7     public SCompType(String s1i,String s2i){
 8         s1=s1i;
 9         s2=s2i;
10     }
11     @Override
12     public String toString(){
13         return "[s1="+s1+",s2="+s2+"]";
14     }
15
16     public int compareTo(Object rv){
17         String rvi=((SCompType)rv).s1;
18         return s1.compareTo(rvi);
19     }
20     private static Arrays2.RandStringGenerator gen=
21             new Arrays2.RandStringGenerator(7);
22     public static Generator generator(){
23         return new Generator(){
24             public Object next(){
25                 return new SCompType((String)gen.next(),(String)gen.next());
26             }
27         };
28     }
29 }

上面是对比代码。

时间: 2024-08-28 04:08:34

JAVA问题之继承Comparable的泛型实例的相关文章

最佳新秀Java(22)——再次了解泛型

仿制药Java SE 1.5新功能.通用自然是参数化类型.即操作数据类型被指定为一个参数.这样的参数类型可以在课堂上使用.创建的接口和方法,他们被称为通用类..泛型方法. Java语言引入泛型的优点是安全简单. 规则和限制 1.泛型的类型參数仅仅能是类类型(包含自己定义类),不能是简单类型.2.同一种泛型能够相应多个版本号(由于參数类型是不确定的),不同版本号的泛型类实例是不兼容的.3.泛型的类型參数能够有多个.4.泛型的參数类型能够使用extends语句.比如<T extends superc

Java知多少(41)泛型详解

我们知道,使用变量之前要定义,定义一个变量时必须要指明它的数据类型,什么样的数据类型赋给什么样的值. 假如我们现在要定义一个类来表示坐标,要求坐标的数据类型可以是整数.小数和字符串,例如: 1 x = 10.y = 10 2 x = 12.88.y = 129.65 3 x = "东京180度".y = "北纬210度" 针对不同的数据类型,除了借助方法重载,还可以借助自动装箱和向上转型.我们知道,基本数据类型可以自动装箱,被转换成对应的包装类:Object 是所有

Java学习之道:简述泛型通配符&lt;? extends T&gt;和&lt;? super T&gt;

<? extends T>和<? super T>含有JAVA5.0的新的概念.由于它们的外表导致了很多人误解了它们的用途: 1.<? extends T>首先你很容易误解它为继承于T的所有类的集合,这是大错特错的,相信能看下去你一定见过或用过List<? extends T>吧?为什么我说理解成一个集合是错呢?如果理解成一个集合那为什么不用List<T>来表示?所以<? extends T>不是一个集合,而是T的某一种子类的意思,记

Java知多少(42)泛型通配符和类型参数的范围

本节先讲解如何限制类型参数的范围,再讲解通配符(?). 类型参数的范围 在泛型中,如果不对类型参数加以限制,它就可以接受任意的数据类型,只要它是被定义过的.但是,很多时候我们只需要一部分数据类型就够了,用户传递其他数据类型可能会引起错误.例如,编写一个泛型函数用于返回不同类型数组(Integer 数组.Double 数组等)中的最大值: 1 public <T> T getMax(T array[]){ 2 T max = null; 3 for(T element : array){ 4 m

Java中的继承、封装、多态的理解

Java中的继承.封装.多态 继承的理解: 1.继承是面向对象的三大特征之一,也是实现代码复用的重要手段.Java的继承具有单继承的特点,每个子类只有一个直接父类. 2.Java的继承通过extends关键字来实现,实现继承的类被称为子类,被继承的类称为父类(有的也称其为基类.超类),父类和子类的关系,是一种一般和特殊的关系.就像是水果和苹果的关系,苹果继承了水果,苹果是水果的子类,水果是苹果的父类,则苹果是一种特殊的水果. 3.Java使用extends作为继承的关键字,extends关键字在

Java面向对象的继承

继承也是面向对象的又一重要特性,继承是类于类的一种关系,通俗来说狗属于动物类,那么狗这个类就继承了动物类 java中的继承是单继承的,一个类只能继承与一个父类 子类继承父类之后,子类就拥有了父类的所有属性和方法,private的除外,优点就是可以提高代码的复用性,简单的继承实例如下: 1 public class Dog extends Animal { 2 //Dog类继承了Animal类中的所有非私有的属性和方法,可以直接使用了 3 } 使用继承还是挺简单的 方法重写 如果子类对继承父类的方

黑马程序员——java基础--面向对象--继承

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 继承: 1.当一个类中包含了另一个类的所有变量个方法时,但另一个类中不包含另一个类的所有变量和方法时,表示范围比较小的就可以作为另一个的父类. 集合表示:A属于B,B不属于A,A就可以作为B的父类,B继承A 2.当只是为了获取其他类的功能的时候,不能为了简化代码而继承. 3.必须是类与类之间的所属关系才可以继承,所属关系看前面集合 继承的特点: 1.不支持多继承,只支持单继承: 多继承的话容易

浅谈Java中类的继承

继承作为面向对象的三大基本特征之一,也是Java中必不可少的组成部分.因此,Java中类的继承和其他面向对象语言的继承都是大同小异的. 继承的优点: 通过继承可以简化类的定义. Java只支持单继承,不允许多重继承. 可以有多承继承,即一个类可以继承某个类的子类,如类B继承了类A,类C又继承了类B,那么C也间接的继承了A. 子类继承所有父类的成员变量和成员方法,但不继承父类的构造方法.在子类的构造方法中,可使用语句super(参数列表)调用父类的构造方法. 如果子类的构造方法中没有显性的调用父类

将java中数组转换为ArrayList的方法实例(包括ArrayList转数组)

方法一:使用Arrays.asList()方法 1 2 String[] asset = {"equity", "stocks", "gold", "foreign exchange","fixed income", "futures", "options"}; List<String> assetList = Arrays.asList(asset);