For instance, you have a collection of objects in an List
object, and you want to do some logic based on the object’s class. This can easily be done using the instanceof
operator. The operator returns true
if an object is an instance of a specified class, if not it will return false
.
The instanceof
operator is most likely used when implementing an equals(Object o)
method of an object to check if the compared object is from the same class.
package org.kodejava.lang;
import java.util.ArrayList;
import java.util.List;
public class InstanceOfExample {
public static void main(String[] args) {
Person person = new Person("John");
Animal animal = new Animal("Highland");
Thing thing = new Thing("Red");
String text = "hello";
Integer number = 1000;
List<Object> list = new ArrayList<>();
list.add(person);
list.add(animal);
list.add(thing);
list.add(text);
list.add(number);
for (Object o : list) {
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 final String name;
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
class Animal {
private final String habitat;
public Animal(String habitat) {
this.habitat = habitat;
}
public String getHabitat() {
return habitat;
}
}
class Thing {
private final String color;
public Thing(String color) {
this.color = color;
}
public String getColor() {
return color;
}
}
The result of the code snippet above:
My name is John
I live in Highland
My color is Red
My text is hello
My value is 1000
Latest posts by Wayan (see all)
- How do I get number of each day for a certain month in Java? - September 8, 2024
- How do I get operating system process information using ProcessHandle? - July 22, 2024
- How do I sum a BigDecimal property of a list of objects using Java Stream API? - July 22, 2024