小编Dan*_*olz的帖子

使用变量类名而不是许多if子句?

我现在被困,不知道更容易解决这个问题,也许你可以帮助我.

我有一个名为Animal的接口和许多实现它的动物类.编辑:接口必须是错误的:

public interface Animals {
    Integer lifespan = 0;

    public Integer getLifespan();
} 
Run Code Online (Sandbox Code Playgroud)

在一个函数中,我得到一些随机的动物对象,我想得到它的变量.

if (animal instanceof GuineaPig) {
            lifespan = ((GuineaPig) animal).getLifespan();
            age = ((GuineaPig) animal).getAge();
            value = ((GuineaPig) animal).getValue();
}
if (animal instanceof Rabbit) {
            lifespan = ((Rabbit) animal).getLifespan();
            age = ((Rabbit) animal).getAge();
            value = ((Rabbit) animal).getValue();
}
Run Code Online (Sandbox Code Playgroud)

现在我需要为每一种动物设置if子句,必须有一种更简单的方法,对吧?我究竟做错了什么?

EDIT2:完整的界面和类:

public interface Animals {
final Integer id = 0;
Integer prize = 999999;
Integer value = 0;
Integer age = 0;
Integer lifespan = 0;


String[] colors …
Run Code Online (Sandbox Code Playgroud)

java android interface class

3
推荐指数
1
解决办法
63
查看次数

标签 统计

android ×1

class ×1

interface ×1

java ×1