我正在尝试学习泛型类,到目前为止它还很顺利。我有一个问题,可能是我是盲人,但是我有问题从另一个非泛型类访问一个对象
说这是我的通用类:
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,说我想知道冰箱里有什么啤酒以及剩下多少啤酒。我一直在努力解决这个问题,任何能帮助我朝正确方向前进的人都能解决这个问题吗?
答案 0 :(得分:1)
您可以像这样获取T
(Beer
)对象:
public Beer drinkBeer(Fridge f) {
return f.<Beer>getBeer();
}
答案 1 :(得分:1)
最好的办法是使你的方法参数具有通用性,例如:
你可以得到像这样的T(啤酒)对象:
public T drinkBeverage(Fridge<T> f) {
return f.getBeverage();
}
这里的优点是现在你可以喝任何东西,包括啤酒?