o****h 发帖数: 58 | 1 不用 instanceof operator 或 the isInstance() method
怎样测出某个instance是不是某个class的instance
Your idea is appreciated |
p*****e 发帖数: 5165 | 2
call getClass().getName() and compare to class name
This may work only for public classes
【在 o****h 的大作中提到】 : 不用 instanceof operator 或 the isInstance() method : 怎样测出某个instance是不是某个class的instance : Your idea is appreciated
|
b**o 发帖数: 16 | 3 SomeClass obj;
Object param;
try{
obj = (SomeClass) param;
System.out.println("Yes, it is a instance of SomeClass");
}catch(ClassCastException e){
System.out.println("No, it isn't.");
}
【在 o****h 的大作中提到】 : 不用 instanceof operator 或 the isInstance() method : 怎样测出某个instance是不是某个class的instance : Your idea is appreciated
|
o****h 发帖数: 58 | 4
//要求做成一个method, 于是,偶这样
class Collie extends Dog{
public boolean isa(String className){ //需要全路径,如java.lang.Object
Collie param=new Collie();
try {
Class SomeClass = Class.forName(className);
// System.out.println(SomeClass);
Object obj = SomeClass.newInstance();
obj=(SomeClass)param; // 这里总是有问题呢,该怎么办 ???
return true;}
catch(Exception e){return false;}
}
}
另外一种方法倒是没问题,并且不必输入全路径,但好像烦了很多
class Collie extends Dog{
public boolean isa(String className){
【在 b**o 的大作中提到】 : SomeClass obj; : Object param; : try{ : obj = (SomeClass) param; : System.out.println("Yes, it is a instance of SomeClass"); : }catch(ClassCastException e){ : System.out.println("No, it isn't."); : } :
|