场景是我将一个对象作为方法中的参数传递,我想根据该方法中该对象的类型执行操作。
示例代码为:
method(Object object){
//if object== String type print string
}
答案 0 :(得分:6)
使用instanceof关键字。 java编程语言中的关键字instanceOf是一个布尔运算符,用于测试对象是否属于指定类型,并相应地返回该值。
if(object instanceof String) {
}
答案 1 :(得分:4)
尝试
if (object.getClass().getName().equals("Class1Name"))
//do something.
getClass
代替instanceof
的优点是您不需要在编译时知道类类型。
答案 2 :(得分:1)
答案 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()方法。