关于 instanceof 的疑问,巨难 String A="……";if(a instanceof Class.forName(A)) {……} 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 同意楼上,要注意加ClassNotFoundException 好像instanceof 有个缺陷,就是对未知的类无法识别。而isinstance就没有这点不好的地方。 isinstance就可以识别未知类吗?只是不要用try块包起来。 可以写成if(a instanceof A.class) String A = "test.A";DbUnitKernel dbk = null;Object obj = Class.forName(A).newInstance();if (!B.getClass().isInstance(obj)) { throw new DbUnitException("A is not a B instance!"); } 都不是这样的呀我是想实现这样的功能:对于通过某中方法查找到的一个对象,我想知道这个对象是否属于某一个类的对象如String classNameStr//类的名字Object a=....;//查找到对象if(a instanceof classNameStr)//在这里classNameStr为字符串,不行{ .....} 同意beyond_xiruo(又再次无奈的离开)String A="……";if(a instanceof Class.forName(A)) {……}instanceof 后面跟的必需是一个Class对象,你要使用就得遵守这个规则。或者,我觉得可以这样:String name=a.getClass().getName();if(name.equals(classNameStr)){ ...}当然,可能需要加上包的名字(麻烦,还不如用上面的方法):) to beyond_xiruo(又再次无奈的离开)and hehecafe(呵呵咖啡馆) (String A="……";if(a instanceof Class.forName(A)) {……}这种代码根本就编不过,别逗了 你给的分也实在太低了,下次给这么多分,我是不会回答了:public class InstanceOfDemo{ public static void main(String[] args) throws Exception{ Object o = new B(); String[] classes = {"A", "B"}; for(int i=0;i<classes.length;i++){ Class cls = Class.forName(classes[i]); if(cls.isInstance(o)){ System.out.println("is " + classes[i]); }else{ System.out.println("not A" + classes[i]); } } }} 运行看看,可能对你有帮助!class A{}class B{}public class testIns{ public static void main(String[] arg){ try{ String[] classes = {"A", "B"}; for (int i=0;i<classes.length;i++){ System.out.println(Class.forName(classes[i])); } }catch(Exception e){ e.printStackTrace(); } }} java应用程序中画表格 关于JAVA与数据库连接的小问题. GUI的一个奇怪的问题:诡异的鼠标事件 synchronized的问题 eclipse中开发GUI程序的两个小问题 我的tomcat服务嚣不能关闭了(用shutdown命令)提示说duplicate name in mainfest: classes-paht!! 关于文本输入时最大长度限制 今天开始学。 图像处理时碰到的一个问题,细节见文章 springmvc怎么读取本地图片显示到JSP呢?我现在用的流读取。请各位大拿帮忙看下! 会corba的近来看看? JFreeChart中如何改变图总文字的字体
而isinstance就没有这点不好的地方。
只是不要用try块包起来。
Object obj = Class.forName(A).newInstance();
if (!B.getClass().isInstance(obj)) {
throw new DbUnitException("A is not a B instance!");
}
我是想实现这样的功能:
对于通过某中方法查找到的一个对象,我想知道这个对象是否属于某一个类的对象
如
String classNameStr//类的名字
Object a=....;//查找到对象
if(a instanceof classNameStr)//在这里classNameStr为字符串,不行
{
.....
}
beyond_xiruo(又再次无奈的离开)String A="……";
if(a instanceof Class.forName(A)) {
……
}instanceof 后面跟的必需是一个Class对象,你要使用就得遵守这个规则。
或者,我觉得可以这样:
String name=a.getClass().getName();
if(name.equals(classNameStr)){
...
}
当然,可能需要加上包的名字(麻烦,还不如用上面的方法)
:)
if(a instanceof Class.forName(A)) {
……
}这种代码根本就编不过,别逗了
public static void main(String[] args) throws Exception{
Object o = new B();
String[] classes = {"A", "B"};
for(int i=0;i<classes.length;i++){
Class cls = Class.forName(classes[i]);
if(cls.isInstance(o)){
System.out.println("is " + classes[i]);
}else{
System.out.println("not A" + classes[i]);
}
}
}
}
class A{
}
class B{
}public class testIns{
public static void main(String[] arg){
try{
String[] classes = {"A", "B"};
for (int i=0;i<classes.length;i++){
System.out.println(Class.forName(classes[i]));
}
}catch(Exception e){
e.printStackTrace();
}
}
}