从另一个类中检索存储在泛型类中的对象

时间:2015-01-30 01:11:49

标签: java

我正在尝试学习泛型类,到目前为止它还很顺利。我有一个问题,可能是我是盲人,但是我有问题从另一个非泛型类访问一个对象

说这是我的通用类:

public class Fridge<T> {

private T beer;

// Forgot to add (T beer) thanks for pointing that out
public void storeBeer(T beer) {
this.beer = beer;
}
public T getBeer() {
  return beer;
}

有啤酒类:

public class Beer {

private String brand;
private int amountLeft;

Beer(String brand, int amountLeft) {
  this.brand = brand;
  this.amountLeft = amountLeft;
  } 
}

测试类:

public class Test {

Fridge<Beer> myFridge = new Fridge<Beer>();
Beer b1 = new Beer("Samuel Adams", 6);
// Another line I forgot to add, thanks for pointing out
myFridge.storeBeer(b1);
}

现在让我说我有另一节课喝酒:

public class Drink {

public Beer drinkBeer(Fridge f) {
  //Here I miss code
  return null;
  }
}

我试图了解如何从类Drink中访问对象b1,说我想知道冰箱里有什么啤酒以及剩下多少啤酒。我一直在努力解决这个问题,任何能帮助我朝正确方向前进的人都能解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

您可以像这样获取TBeer)对象:

public Beer drinkBeer(Fridge f) {
  return f.<Beer>getBeer();
}

答案 1 :(得分:1)

最好的办法是使你的方法参数具有通用性,例如:

你可以得到像这样的T(啤酒)对象:

public T drinkBeverage(Fridge<T> f) {
  return f.getBeverage();
}

这里的优点是现在你可以喝任何东西,包括啤酒?