Java我如何知道对象的类?
例如,您在一个对象中有一个List对象集合,并且您想要基于该对象的类执行一些逻辑。使用instanceof运算符可以轻松完成此操作。true如果对象是指定类的实例,则运算符返回,否则返回false。
在instanceof实现一个操作者时是最有可能使用equals(Objecto)的对象的方法,以检查是否相比对象是同一类。
package org.nhooo.example.lang;
import java.util.ArrayList;
import java.util.List;
public class InstanceOfExample {
public static void main(String[] args) {
Person p = new Person("John");
Animal a = new Animal("Highland");
Thing t = new Thing("Red");
String text = "hello";
Integer number = 1000;
List list = new ArrayList();
list.add(p);
list.add(a);
list.add(t);
list.add(text);
list.add(number);
for (int i = 0; i < list.size(); i++) {
Object o = list.get(i);
if (o instanceof Person) {
System.out.println("My name is " + ((Person) o).getName());
} else if (o instanceof Animal) {
System.out.println("I live in " + ((Animal) o).getHabitat());
} else if (o instanceof Thing) {
System.out.println("My color is " + ((Thing) o).getColor());
} else if (o instanceof String) {
System.out.println("My text is " + o.toString());
} else if (o instanceof Integer) {
System.out.println("My value is " + ((Integer) o));
}
}
}
}
class Person {
private String name;
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
class Animal {
private String habitat;
public Animal(String habitat) {
this.habitat = habitat;
}
public String getHabitat() {
return habitat;
}
}
class Thing {
private String color;
public Thing(String color) {
this.color = color;
}
public String getColor() {
return color;
}
}上面的代码片段的结果:
My name is John I live in Highland My color is Red My text is hello My value is 1000