下面的代码来自我的测试用例,但是如果我在应用服务器中运行它,instanceOf
无效并进入else循环并抛出异常。
abstract class A { }
class B extends A { }
class C extends A { }
class MyClass {
public void setObject(Object obj){
if(obj instanceOf A){
//typecast
}else
throw new Exception("Object not supported");
}
}
客户代码 -
B b = new B();
b.set..
MyClass client = new MyClass();
client.setObject(b);
答案 0 :(得分:1)
试试这个:
abstract class A { }
class B extends A { }
class C extends A { }
class MyClass {
public static void main(String args[]){
//call method of the same calls
}
public void setObject(Object obj){
if(obj instanceof A){
// assign your object
}else
throw new Exception("Object not supported");
}
}
答案 1 :(得分:0)
看看这个并根据这个确定你的例子。
例如,你需要检查一下扩展第一类的第二类。
abstract class FirstClass {
public void setobject(Object o){
if (o instanceof FirstClass) {
System.out.println("Matched****");
}else{
System.out.println(" Not Matched****");
}
}
}
public class SecondClass extends FirstClass{
public SecondClass() {
System.out.println("Second Class*******");
}
@Override
public void setobject(Object o) {
super.setobject(o);
}
}
并进入你的主要calss检查
SecondClass class1 = new SecondClass();
if (class1 instanceof FirstClass) {
System.out.println("Matched **************");
}else{
System.out.println("Not Matched **************");
}