当前位置: 代码迷 >> Java相关 >> 请教JAVA关键字instanceof的含义和用法
  详细解决方案

请教JAVA关键字instanceof的含义和用法

热度:170   发布时间:2007-04-02 10:13:26.0
请教JAVA关键字instanceof的含义和用法

这段代码是THINK IN JAVA第8章对象的容纳的,有个关键字我不太明白,查了一下字典说是急切的,但我对它的用法不是很明白,请高手指教
import java.util.*;

class Groundhog2 {
int ghNumber;
Groundhog2(int n) { ghNumber = n; }
public int hashCode() { return ghNumber; }
public boolean equals(Object o) {
return (o instanceof Groundhog2)//就是这个关键字,对这个用法也不太熟悉
&& (ghNumber == ((Groundhog2)o).ghNumber);
}
}

public class SpringDetector2 {
public static void main(String[] args) {
Hashtable ht = new Hashtable();
for(int i = 0; i < 10; i++)
ht.put(new Groundhog2(i),new Prediction());
System.out.println("ht = " + ht + "\n");
System.out.println(
"Looking up prediction for groundhog #3:");
Groundhog2 gh = new Groundhog2(3);
if(ht.containsKey(gh))
System.out.println((Prediction)ht.get(gh));
}
} ///

搜索更多相关的解决方案: JAVA  关键字  instanceof  用法  含义  

----------------解决方案--------------------------------------------------------
一个简单的例子:
obj对象是从session中取出的对象,我们只知道他是TaskDetailVO,CallDetailVO,AppointmentDetailVO中的一种,但不能确定是哪一种,如果此时你要调用他们的方法有可能会出错,所以这时候你就可以用instanceof来判断。
[CODE]
FacesContext fc = FacesContext.getCurrentInstance();
Object obj = ((HttpSession) fc.getExternalContext().getSession(false)).getAttribute(SystemConstants.WEB_TO_OBJECT);
String returnPage = "";
if (obj instanceof TaskDetailVO)
{
returnPage = SystemConstants.SEV_FLOW_PLANNING_TASK_DETAIL;
}
if (obj instanceof CallDetailVO)
{
returnPage = SystemConstants.SEV_FLOW_CALL_DETAIL_ACTION;
}
if (obj instanceof AppointmentDetailVO)
{
returnPage = SystemConstants.SEV_FLOW_APPOINTMENT_DETAIL_ACTION;
}
return returnPage;
[/CODE]
----------------解决方案--------------------------------------------------------
简单的说,它是一个运算符,它返回一个boolean值

如果前者是后者的一个实例 ,则会返回true,否则返回false

前者 instanceof 后者
----------------解决方案--------------------------------------------------------

谢谢对该关键字解释的这么清楚,开始我也只知道返回boolean型,不知道具体含义,现在知道了,谢谢~


----------------解决方案--------------------------------------------------------
  相关解决方案