判断是否实现接口(如何判断接口调用哪个类)

网友投稿 338 2023-01-21


本篇文章给大家谈谈 判断是否实现接口,以及如何判断接口调用哪个类对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享 判断是否实现接口的知识,其中也会对如何判断接口调用哪个类进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java如何判断一个类是否实现了某个接口?

Class中有个方法 public native boolean isAssignableFrom(Class<? cls)用来判断子类是否继承于父类的或者父接口的。

你会这样子写:

Class clazz = ....;

clazz.isAssignableFrom(子类名称);返回true说明是挂号里的类的父类或父接口。

clazz.isAssignableFrom(子类名称)里的子类名称跟版本有关,好像是1.5以上的JDK这里的子类名称都是使用的泛型编程。即传的传数是

class<T 类型的,你用的时候自己斟酌下版本问题。

而常用的instanceof(class ..)是指该实例是否属于挂号中的类的父类的一个实例。

如上面的例子:

class A{

}

public class B extends A{

public static void main(String[] args){

Class clazz = B.class;

Class class1 = A.class;

System.out.println(class1.isAssignableFrom(clazz));

if(class1.isAssignableFrom(clazz)){

System.out.println("A是B的父类");

}else{

System.out.println("A不是B的父类");

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程[1]  。

Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点[2]  。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等[3]  。

JDK(Java Development Kit)称为Java开发包或Java开发工具,是一个编写Java的Applet小程序和应用程序的程序开发环境。JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一些Java工具和Java的核心类库(Java API)。不论什么Java应用服务器实质都是内置了某个版本的JDK。主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如,IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK[13]  。

另外,可以把Java API类库中的Java SE API子集和Java虚拟机这两部分统称为JRE(JAVA Runtime Environment),JRE是支持Java程序运行的标准环境[14]  。

JRE是个运行环境,JDK是个开发环境。因此写Java程序的时候需要JDK,而运行Java程序的时候就需要JRE。而JDK里面已经包含了JRE,因此只要安装了JDK,就可以编辑Java程序,也可以正常运行Java程序。但由于JDK包含了许多与运行无关的内容,占用的空间较大,因此运行普通的Java程序无须安装JDK,而只需要安装JRE即可[15]  。

C#如何判断一个类是否实现了指定接口

C#里,interface(接口)结构体中定义的接口必须在继承类里显式的实现,否则编译器就报错了,应该不用去判断“是不是实现了某个接口”,因为编译器会帮你判断。
如:
123456789101112public interface ICommon{ string Show(string str);} public class Common:ICommon //继承接口{ public string Show(string str) //接口实现 { return "您输入了:"+str; }}
如果你的实现类里面写成:
1public string Show(int number){.....}
那么编译器会提醒你,Common里没有显式实现接口。。。

java 中如何检测已经实现了接口?

可以用反射 判断是否实现接口的方法获取该类 判断是否实现接口的父类。也就是取得该类的字节码文件 判断是否实现接口,然后调用字节码文件的getSuperclass()方法就可以获取父类。
还有一种就是使用A.isAssignableFrom(B.class)方法
这个方法是判断A是否为B的父类或接口.返回boolean类型。
第二种方法可以参见:
http://hi.baidu.com/maml897/blog/item/1a80e43cf4f5a0cc9f3d62b4.html

java中判断一个对象是否实现了某个接口

/*************************************************************************** * 判断对象o实现的所有接口中是否有szInterface * 2008-08-07 修正多继承中判断接口的功能, * 以及修正接口继承后的判断功能 * package test; * * public interface ITest extends Serializable * public class Test1 implements ITest * public class Test2 extends Test1 * public class Test3 extends Test2 * * isInterface(Test3.class, "java.io.Serializable") = true * isInterface(Test3.class, "test.ITest") = true * @param c * @param szInterface * @return */ public boolean isInterface(Class c, String szInterface) { Class[] face = c.getInterfaces(); for (int i = 0, j = face.length; i < j; i++) { if(face[i].getName().equals(szInterface)) { return true; } else { Class[] face1 = face[i].getInterfaces(); for(int x = 0; x < face1.length; x++) { if(face1[x].getName().equals(szInterface)) { return true; } else if(isInterface(face1[x], szInterface)) { return true; } } } } if (null != c.getSuperclass()) { return isInterface(c.getSuperclass(), szInterface); } return false; }

C#/VB.net如何判断对象是否实现了某个接口?

对象 is 接口名
实现了就返回true
否则返回false
例如
ArrayList list = new ArrayList();
Console.WriteLine(list is ICollection);//输出true
另外根据你的描述我觉得还可以使用as关键字来实现
还是拿我上面的例子
ICollection collection = list as ICollection;//如果list实现了ICollection接口,list会被转型成为ICollection,否则返回null
if(collection != null){
collection.Sort();
}

C#怎么判断类型是否实现指定泛型接口

以Program类和IEnumerable泛型接口为例,只需判断它的实例是否能强制转换成指定的泛型接口,如果为null说明它未实现某接口,反之,实现了某接口。

 IEnumerable<Object en = (new Program()) as IEnumerable<Object;
 
 if (en != null) Console.WriteLine("Implemented");
 else Console.WriteLine("Non-Implement");
关于 判断是否实现接口和如何判断接口调用哪个类的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 判断是否实现接口的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于如何判断接口调用哪个类、 判断是否实现接口的信息别忘了在本站进行查找喔。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SpringBoot中利用MyBatis进行数据操作的示例
下一篇:Spring 事务事件监控及实现原理解析
相关文章

 发表评论

暂时没有评论,来抢沙发吧~