3 回答

TA貢獻(xiàn)1790條經(jīng)驗(yàn) 獲得超9個(gè)贊
callFriend
public <T extends Animal> T callFriend(String name, Class<T> type) { return type.cast(friends.get(name));}
jerry.callFriend("spike", Dog.class).bark();jerry.callFriend("quacker", Duck.class).quack();

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊
jerry.callFriend("spike")
jerry.addFriend("quaker", new Duck());jerry.callFriend("quaker", /* unused */ new Dog()); // dies with illegal cast
talk()
Mouse jerry = new Mouse();jerry.addFriend("spike", new Dog());jerry.addFriend("quacker", new Duck()); jerry.callFriend("spike").talk();jerry.callFriend("quacker").talk();

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超9個(gè)贊
@SuppressWarnings("unchecked")public <T extends Animal> T callFriend(String name) { return (T)friends.get(name);}
@SuppressWarnings
ClassCastExceptions
jerry.<Dog>callFriend("spike").bark();
Animal
talk()
添加回答
舉報(bào)