工大后院

 找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 2182|回复: 3

问个弱弱的问题:JAVa中的instanceof

[复制链接]
发表于 2006-5-4 01:50 | 显示全部楼层 |阅读模式
用instanceof可以判断一个对象是属于哪个类的实例,但是如果是int 型 double型的呢?
比如我只知道有个变量x  , 但是不清楚它究竟是int 型的?double型的? 还是String型的引用?某种类型的对象的引用?
那么,这时要怎样才能判断出X(或者它所指向的对象)的类型呢?
是不是有其他什么方法?还是要用instanceof再结合什么方法来进行判别呢?
发表于 2006-5-7 20:09 | 显示全部楼层
java里有8种基本类型(j2se5.0增加到9种),,,这8种包括int,float,char等(特征是小写字母开头,,,呵呵,可以这么简单理解)...除了这8种基本类型外,,,其他的类型都是类(常见的String,Date等)...

instanceof只能用于类的判断,而不能判断是否属于基本类型...

同时,,,作为面向对象的java语言,提供了基本类型的封装类型,比如int对应于Integer,boolean对应Boolean...这种封装类型就可以用instanceof来判断.

对于楼主的需求,可以用封装类型来做判断.因为一个不知类型的x,,,我想必定不是基本类型吧???程序中声明x估计是用类似:Object x;这样子...这样的话其实就已经注定了x不可能是int,float等基本类型了...

表达得比较零散...楼主有什么疑问请继续提出...我了解的话我很乐意在这里贴出我的看法...
回复

使用道具 举报

 楼主| 发表于 2006-5-7 23:36 | 显示全部楼层

think you 啦

wool好像很久没来后院活动了哦?

如果连x是基本类型还是引用类型的都不知道呢?
呵呵  好像这个问题有点弱,应该是没办法判断的吧?
其实我是想做一个标签,在jsp里面传参数进去,我希望这个标签能根据我传进的数据类型,判断究竟是什么类型的,比如说是INT 还是String   然后能根据所传的若干个参数,自动的按顺序执行PreparedStatement 对象的setInt()  或者setString()等方法,…………最后是用表格显示出要查询的结果.
而我又希望这个标签的使用非常简单,不需要封装int   float等基本类型

**********************************************************************************************
因为一个不知类型的x,,,我想必定不是基本类型吧???程序中声明x估计是用类似:Object x;这样子...这样的话其实就已经注定了x不可能是int,float等基本类型了...
***********************************************************************************************
回复

使用道具 举报

发表于 2006-5-8 01:37 | 显示全部楼层
如果连x是基本类型还是引用类型的都不知道呢?

这个在java里面应该没这种可能吧???就算你用标签,,,setX(××× x),至少也知道x是×××类型吧...

楼上的做法可以将标签设入值全部用String,然后再在程序中用例如:
String x = this.x;
int a ;
try{
   a = Integer.parasInt(x);
}catch(Exception e){
   a = 0;
}

大概此类的方法获得设入值是否符合业务逻辑范围.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入后院

本版积分规则

QQ|Archiver|手机版|小黑屋|广告业务Q|工大后院 ( 粤ICP备10013660号 )

GMT+8, 2025-8-31 05:39

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表