package Chapter12Generic; import java.awt.Component; import java.util.Dictionary; import java.util.GregorianCalendar; import java.util.Hashtable; import javax.swing.ImageIcon; import javax.swing.JLabel; import javax.swing.JSlider; import javax.swing.plaf.SliderUI; /* * ͨÓõÄÕÒ³ö×î´óÖµºÍ×îСֵµÄ·½·¨ * * */ public class GenericCompare { private int X=1; private int Y=2; private int Z=3; public enum size{a,b,c}; //ö¾ÙÀàÐÍ---ʵ¼ÊÕâÊǶ¨ÒåÁËÒ»¸öö¾ÙµÄÀà public enum s{ SMALL("s"),MEDIUM("M"),LARGE("L"); private String s; private s(String size){ this.s=size; } } public static void main(String[] args) { GregorianCalendar calendar1=new GregorianCalendar(2011, 11, 12); GregorianCalendar calendar2=new GregorianCalendar(2012, 2, 3); GregorianCalendar calendar3=new GregorianCalendar(1034, 3, 3); //ʵ¼ÊÖУ¬¿ÉÒÔÊ¡ÂÔÀàÐͲÎÊý£¬ÒòΪϵͳ¿ÉÒԲ²â³ö Pair minmax= ArrayCompare.minmax(calendar1,calendar2,calendar3); System.out.println("×îСֵ£º"+minmax.getFirst().getTime()+" ×î´óÖµ£º"+minmax.getSecond().getTime()); Dictionary labelTable=new Hashtable(); labelTable.put(0,new JLabel(new ImageIcon())); JSlider slide=new JSlider(); slide.setLabelTable(labelTable); //java²»Ö§³Ö·ºÐÍÀàÐ͵ÄÊý×é //Pair[] table=new Pair[10];//ERROR²»ÔÊÐíʵÀý»¯£¬µ«ÊÇÔÊÐíÉùÃ÷ } } class ArrayCompare{ //±ä²Îº¯Êý---»á°Ñ²ÎÊý±ä³ÉÊý×é //extend²»ÊǼ̳У¬£¬£¬±íʾTÊǸðó¶¨ÀàÐ͵Ä×ÓÀàÐÍ //ÀàÐͲÎÊý /* * ¿É±ä²ÎÊýÈç¹ûÊÇ·ºÐÍÀàµÄ»°£¬¾ÍÎ¥·´ÁË¡°Java²»ÄÜʵÀý»¯·ºÐÍÊý×éµÄ¹æÔò¡±£¬£¬ÕâÀï¿ÉÒÔÓÃ@SafeVarargs×¢½âÏû³ý * */ @SafeVarargs public static Pair minmax(T...t){ T min=t[0]; T max=t[0]; for(T value:t){ if(min.compareTo(value)>0){ min=value; } if(max.compareTo(value)(min,max); } } //¶¨Òå·ºÐÍÀà T-----ÀàÐͲÎÊý class Pair{ private T first; private T second; //Cannot make a static reference to the non-static type T //½ûֹʹÓôøÓÐÀàÐͱäÁ¿µÄ¾²Ì¬Óò»ò¾²Ì¬·½·¨ //private static T a; public Pair(){ first=null; second=null; } public Pair(T first,T second){ this.first=first; this.second=second; } public T getFirst() { return first; } public void setFirst(T first) { this.first = first; } public T getSecond() { return second; } public void setSecond(T second) { this.second = second; } //ÃüÃûΪequals·½·¨Ãû³åÍ»-------ÒòΪ²Á³ýÀàÐͺóºÍObject.equals()·½·¨³åÍ» public boolean equal(T value){ return first.equals(value)&&second.equals(value); } }