作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
出于培训目的,我正在创建 Java 项目来保存有关动物的信息。有一个其他将扩展的抽象类 Animals。
我想创建食肉界面,通常会将任何动物作为参数:
public interface Carnivorous {
public void eatAnimal(Animal animal);
//alternative way I have tried
public <T extends Animal> void eatAnimal2( T animal);
}
问题是在具体实现中我想将其缩小到扩展 Animal 的特定类:
public class Cat extends Animal implements Carnivorous {
public Cat(String name, int expierence, String meow) {
super(name, expierence);
this.meow = meow;
}
public String getMeow() {
return meow;
}
public void setMeow(String meow) {
this.meow = meow;
}
@Override
public String toString() {
return "Cat [meow=" + meow + ", name=" + name + ", expierence=" + expierence + "]";
}
@Override
public void eatAnimal(Animal animal) {
// TODO Auto-generated method stub
}
@Override
public <T extends Animal> void eatAnimal2(T animal) {
// TODO Auto-generated method stub
}
在这种情况下,我希望猫只吃老鼠。我不喜欢吃斑马。
最佳答案
您可以在接口(interface)中使用泛型来帮助进行类型检查。
public static class Animal {
public Animal() {
}
}
public static class Rodent extends Animal {
public Rodent() {
}
}
public interface Carnivorous<A extends Animal> {
public void eatAnimal(A animal);
}
public class Cat extends Animal implements Carnivorous<Rodent> {
@Override
public void eatAnimal(Rodent r) {
}
}
这里我有一只食肉动物
猫
,它只吃啮齿动物
。
关于java - 缩小实现中的论点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35895166/
这个问题在这里已经有了答案: 8年前关闭。 Possible Duplicate: How to use R's ellipsis feature when writing your own func
当我尝试指定我想要 pull 最新版本的 pod 时,根据 Cocoapods official docs ,我将它列在我的 podfile 中,如下所示: pod 'ReactiveCocoa',
我是一名优秀的程序员,十分优秀!