2 annbnncnnd AnnBnnCnnD 于 2013.03.13 14:46 提问

有没有办法可以获取对象的类型

情况是我要将一个对象作为参数传递,需要根据对象的类型来选择具体操作。

应该怎么获取?

示例代码:

method(Object object){

//if object== String type print string   
 }

5个回答

Kill_it
Kill_it   2013.03.13 16:00
已采纳

试试:

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

getClass比instanceof好的地方是在编译时不需要了解类的类型

AnnBnnCnnD
AnnBnnCnnD 非常感谢!
大约 5 年之前 回复
O_1001_O
O_1001_O   2013.03.13 15:12

instanceof关键词。java编程语言提供的instanceOf关键词是布尔操作符,检测对象是否特定类型。

if(object instanceof String) {

}
AnnBnnCnnD
AnnBnnCnnD 我试过instanceof,但是在我的环境下用起来比较复杂。不过谢谢你了
大约 5 年之前 回复
zhenglingkun
zhenglingkun 感觉是要这样用的,具体的用法不太清楚。你有没有Demo啊?
大约 5 年之前 回复
sundapengmail
sundapengmail   2013.03.20 10:08

重载才真正的体现OO的多态。

ce_la_vie
ce_la_vie   2013.03.13 14:56

如果需要method根据参数反应不同,应该重载。

public void method(String s) {
}
public void method(Integer i) {
}
public void method(SomeClass o) {
}
AnnBnnCnnD
AnnBnnCnnD 最后还是用getClass
大约 5 年之前 回复
CuGBabyBeaR
CuGBabyBeaR 我也觉得重载比较好
大约 5 年之前 回复
qin1238888
qin1238888   2014.03.28 00:16

重载比较好,体现水平

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!