一道面试题:这么确定a是不是B类的一个实例。谢谢 一道面试题:这么确定a是不是B类的一个实例。谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 正常的做法:a instanceof B比较正常的做法:B.class.isInstance(a)比较变态的做法:new B().getClass().isInstance(a) 更变态的:try { B b = (B)a;} catch (ClassCastException e) { 。}呵呵,开个玩笑,别真的这么搞哦。:P还是顶楼的好。 两种,一种是a instanceof B还有一种是B.class.isAssignableFrom(a.getClass())后一种应该更加常用些 都好像不对。用a instance of B, 那么B是超类,也返回正确isInstance(),就是intance of,所以仍然不对 boolean isAssignableFrom(Class<?> cls) 判定此 Class 对象所表示的类或接口与指定的 Class 参数所表示的类或接口是否相同,或是否是其超类或超接口。 ,也不对这个应该可以吧,没有体验。if(a.getClass().getCanonicalName().equals(B.class.getCanonicalName()){//TRUE;} 如果B是A的超类,x是A的实例那么说x是B的实例也没有错啊,本来继承表达的就是“is a”关系,A是一种B嘛。他也没有说是要确定x确切地属于哪个类,只要判断是否是这个类的实例。要确定是属于哪个类也容易啊,用getClass().getName()就知道类名了class A{ }class B extends A{ }class Test{ public static void main(String[] args){ Object o=new B(); System.out.println(o.getClass().getName()); }} Class1 a = new Class1();Class1 b = new Class1();if (a.GetType()==b.GetType()){ MessageBox.Show("来自同的类");}else{ MessageBox.Show("来自不同的类");} if(a.class == b.class){//是} if(a instanceof B)揭贴吧 Study~貌似有很多高手阿~这些细节问题我都没注意到~~ if (a instanceof B) ... 请教高手解答:jdk1.6里为什么没有SortUtil这个类? sql 预先判断问题 求大家解释一个简单程序的运行结果 java程序这句是如何运行的? WEBLOGIC启动后出现javax.security.auth.login.failedloginexception? 求教 用java如何统计给出的一段文章中的所有中文词组的数量? 如何继承多个类 java的卡片式窗口怎么生成?? Char类型转int类型时候,怎么才不是赋值ASCII码?? ###(项目名称缩写含义)(散100分大家交流下) 关于jdk1.4默认线程栈大小?
比较正常的做法:B.class.isInstance(a)
比较变态的做法:new B().getClass().isInstance(a)
B b = (B)a;
} catch (ClassCastException e) {
。
}呵呵,开个玩笑,别真的这么搞哦。:P还是顶楼的好。
a instanceof B
还有一种是
B.class.isAssignableFrom(a.getClass())
后一种应该更加常用些
用a instance of B, 那么B是超类,也返回正确isInstance(),就是intance of,所以仍然不对 boolean isAssignableFrom(Class<?> cls)
判定此 Class 对象所表示的类或接口与指定的 Class 参数所表示的类或接口是否相同,或是否是其超类或超接口。 ,也不对
这个应该可以吧,没有体验。if(a.getClass().getCanonicalName().equals(B.class.getCanonicalName())
{
//TRUE;
}
}class B extends A{
}class Test{
public static void main(String[] args){
Object o=new B();
System.out.println(o.getClass().getName());
}
}
Class1 b = new Class1();if (a.GetType()==b.GetType())
{
MessageBox.Show("来自同的类");
}
else
{
MessageBox.Show("来自不同的类");
}
//是
}
揭贴吧
貌似有很多高手阿~
这些细节问题我都没注意到~~
...