有没有办法知道对象的类型?

时间:2013-03-13 04:51:18

标签: java android

场景是我将一个对象作为方法中的参数传递,我想根据该方法中该对象的类型执行操作。

示例代码为:

method(Object object){

//if object== String type print string   
 }

9 个答案:

答案 0 :(得分:6)

使用instanceof关键字。 java编程语言中的关键字instanceOf是一个布尔运算符,用于测试对象是否属于指定类型,并相应地返回该值。

if(object instanceof String) {

}

答案 1 :(得分:4)

尝试

if (object.getClass().getName().equals("Class1Name"))
    //do something.

getClass代替instanceof的优点是您不需要在编译时知道类类型。

答案 2 :(得分:1)

您可以在java中使用 instanceof 运算符。

请查看以下链接

Click here for an example

答案 3 :(得分:1)

如果你希望method根据参数做出不同反应,你应该重载它

public void method(String s) {
}

public void method(Integer i) {

}

public void method(SomeClass o) {

}

答案 4 :(得分:0)

使用instanceof运算符检查类型并进行适当的转换

答案 5 :(得分:0)

您可以使用instanceof关键字。但要预先警告;这通常不是一个好习惯,除非你完全不确定你将要经过什么样的Object

答案 6 :(得分:0)

好的做法是使用多态..

如果您的父类具有表示哪个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
    }
}

答案 7 :(得分:0)

如果你打算打印一些东西,可以使用toString()方法,它将覆盖每种不同类型的对象;)

只需使用类似下面的代码,让每个类都有一个不同的toString()方法:

method(Object object){
    // ... object.toString();
}

答案 8 :(得分:0)

我认为你可以使用getclass()方法。