您的位置:程序门 -> java -> j2se / 基础类



public class server implements comparable<server>{}中<server>是什么意思?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


public class server implements comparable<server>{}中<server>是什么意思?[已结贴,结贴人:ever_vb]
发表于:2007-03-11 20:28:50 楼主
public   class   server   implements   comparable <server> {}中 <server> 是什么意思?

public   int   compareto(server   s){},又是这种,好难理解啊?这server是类啊,放在这 <> 中是指什么?放在()又指什么,谢谢!
发表于:2007-03-14 08:47:361楼 得分:0
en?
发表于:2007-03-14 09:51:442楼 得分:1
java   1.5新特性
发表于:2007-03-14 10:53:423楼 得分:6
范型~~

comparable <t>   第   4   页(共9   页)  


comparable   接口已经泛型化了,所以实现   comparable   的对象声明它可以与什么类型进行比较。(通常,这是对象本身的类型,但是有时也可能是父类。)


public   interface   comparable <t>   {  
    public   boolean   compareto(t   other);
}  


所以   comparable   接口包含一个类型参数   t,该参数是一个实现   comparable   的类可以与之比较的对象的类型。这意味着如果定义一个实现   comparable   的类,比如   string,就必须不仅声明类支持比较,还要声明它可与什么比较(通常是与它本身比较):  


public   class   string   implements   comparable <string>   {   ...   }


现在来考虑一个二元   max()   方法的实现。您想要接受两个相同类型的参数,二者都是   comparable,并且相互之间是   comparable。幸运的是,如果使用泛型方法和有限制类型参数的话,这相当直观:  


public   static   <t   extends   comparable <t> >   t   max(t   t1,   t   t2)   {
    if   (t1.compareto(t2)   >   0)
        return   t1;
    else  
        return   t2;
}


在本例中,您定义了一个泛型方法,在类型   t   上泛型化,您约束该类型扩展(实现)   comparable <t> 。两个参数都必须是   t   类型,这表示它们是相同类型,支持比较,并且相互可比较。容易!  

更好的是,编译器将使用类型推理来确定当调用   max()   时   t   的值表示什么意思。所以根本不用指定   t,下面的调用就能工作:


string   s   =   max( "moo ",   "bark ");


编译器将计算出   t   的预定值是   string,因此它将进行编译和类型检查。但是如果您试图用不实现   comparable <x>   的   类   x   的参数调用   max(),那么编译器将不允许这样做。  

(引自http://www6.software.ibm.com/developerworks/cn/education/java/j-generics/tutorial/j-generics-5-4.html)学要注册
发表于:2007-03-14 10:54:454楼 得分:1
不过1.6好像不太支持了
发表于:2007-03-14 10:58:155楼 得分:1
语法错误,仅当源级别为   5.0   时已参数化的类型才可用

这是eclipse报的错
发表于:2007-03-14 11:04:446楼 得分:1
泛型吧.


快速检索

最新资讯
热门点击