场景是我将一个对象作为方法中的参数传递,并且我想根据方法中该对象的类型执行操作。
示例代码是:
method(Object object){
//if object== String type print string
}
使用 instanceof 关键字。java编程语言中的关键字instanceOf是一个布尔运算符,用于测试对象是否属于指定类型并相应地返回值。
if(object instanceof String) {
}
尝试
if (object.getClass().getName().equals("Class1Name"))
//do something.
getClass
代替的优点instanceof
是你不需要在编译时知道类的类型。
如果你想method
根据参数做出不同的反应,你应该重载它
public void method(String s) {
}
public void method(Integer i) {
}
public void method(SomeClass o) {
}
使用 instanceof 运算符检查类型并进行适当的转换
您可以使用 instanceof
关键字。不过要预先警告;这通常不是一个好的做法,除非你完全不确定Object
你会通过哪种方式。
好的做法是使用多态性..
如果您有一个父类,该类的属性表示这是哪个 childType,
class Parent { string type; public string getType() { return type; } }
class ChildA extends Parent { ChildA() { type = "ChildA"; }
class ChildB extends Parent { ChildB() { type = "ChildB"; }
public void function (Parent p)
{
if (p.getType() == "ChildA")
{
// A
}
else if (p.getType == "ChildB")
{
// B
}
}
如果您打算只打印一些东西,您可以使用 toString() 方法,该方法将在每种不同类型的对象上被覆盖;)
只需使用下面的代码,让每个类都有不同的 toString() 方法:
method(Object object){
// ... object.toString();
}
我认为您可以改用 getclass() 方法。