import java.util.*;public class PairTest3 {
public static void main(String[] args) {
Manager ceo= new Manager("Gus Greedy",800000,2003,12,15);
Manager cfo= new Manager("Sid sneaky",600000,2003,12,15);
Pair<Manager> buddies = new Pair<Manager>(ceo,cfo);
printBuddies(buddies);

ceo.setBonus(1000000);
cfo.setBonus(500000);
Manager[] managers={ceo,cfo};

Pair<Employee> result= new Pair<Employee>();
minMaxBonus(managers,result);
System.out.println("first:"+result.getFirst().getName()
            +",second:"+result.getSecond().getName());
maxMinBonus(managers,result);
System.out.println("first:"+result.getFirst().getName()
                        +",second:"+result.getSecond().getName()); }

public static void printBuddies(Pair<? extends Employee> p)
{
Employee first= p.getFirst();
Employee second = p.getSecond();
System.out.println(first.getName()+"and"+second.getName()+"are buddies.");
}
public static void minMaxBonus(Manager[] a,Pair<? super Manager> result)
{
if(a==null||a.length==0) return ;
Manager min=a[0];
Manager max=a[0];
for(int i=1;i<a.length;i++)
{
if(min.getBonus()>a[i].getBonus()) min=a[i];
if(max.getBonus()<a[i].getBonus()) max=a[i];
}

result.setFirst(min);
result.setSecond(max);
}

public static void maxMin(Manager[] a, Pair<? super Manager> result)
{
minMaxBonus(a,result);
PairAlg.swapHelper(result);
}}class PairAlg 
{
public static boolean hasNulls(Pair<?> p)
{
return p.getFirst()==null||p.getSecond()==null;

}
public static void swap(Pair<?> p)
{
swapHelper(p);
}
public static <T> void swapHelper(Pair<T> p)
{
T t= p.getFirst();
p.getFirst(p.getSecond());
p.setSecond(t);
}
}class Employee
{

public Employee(String n,double s,int year ,int month,int day)
{
name=n;
salary=s;
GregorianCalendar calendar = new GregorianCalendar(year,month-1,day);
hireDay= calendar.getTime();
}
public String getName()
{
return name;
}
public double getSalary()
{
return salary;
}
public Date getHireDay()
{
return hireDay;
}
public void raiseSalary(double byPercent)
{
double raise = salary*byPercent/100;
   salary+=raise;
}


private String name;
private double salary;
private Date hireDay;
}class Manager extends Employee
{
public Manager(String n,double s,int year,int month,int day)
{
super(n,s,year,month,day);
bonus=0;
}
public double getSalary()
{
double baseSalary= super.getSalary();
return baseSalary+bonus;
}
public void setBonus(double b)
{
bonus=b;
}
public double getBonus()
{
return bonus;
}

private double bonus;
}关于泛型的定义问题:运行程序时显示Pair没有定义,我想这个应该是定义了的啊,请各位大虾看看,看一下是哪里的问题,谢谢!

解决方案 »

  1.   

    整个程序找遍了,也没找到Pair在哪里
    当然会报这个错
      

  2.   


    class Pair<T> {
      private T first;  private T second;  public Pair() {
        first = null;
        second = null;
      }  public Pair(T theFirst, T theSecond) {
        first = theFirst;
        second = theSecond;
      }  public T getFirst() {
        return first;
      }  public T getSecond() {
        return second;
      }  public void setFirst(T value) {
        first = value;
      }  public void setSecond(T value) {
        second = value;
      }
      

  3.   

    在import 里面引用上Pair类就行了。
    比如import com.google.cn.Pair