`
desert3
  • 浏览: 2158631 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

isAssignableFrom & isInstance

    博客分类:
  • Java
 
阅读更多
java.lang.Object extended by java.lang.Class
  • boolean isAssignableFrom(Class cls) : Determines if the class or interface represented by this Class object is either the same as, or is a superclass or superinterface of, the class or interface represented by the specified Class parameter.
  • boolean isInstance(Object obj) : Determines if the specified Object is assignment-compatible with the object represented by this Class.


isAssignableFrom接受的是Class参数,isInstance接受的是Object参数。
		System.out.println("Object.class.isAssignableFrom(String.class) = " + Object.class.isAssignableFrom(String.class));
		System.out.println("Object.class.isAssignableFrom(Object.class) = " + Object.class.isAssignableFrom(Object.class));
		System.out.println("String.class.isAssignableFrom(Object.class) = " + String.class.isAssignableFrom(Object.class));
		
		String s = "";
		Object o = new Object();
		System.out.println("Object.class.isInstance(s) = " + Object.class.isInstance(s));
		System.out.println("Object.class.isInstance(o) = " + Object.class.isInstance(o));
		System.out.println("String.class.isInstance(o) = " + String.class.isInstance(o));

执行结果:
Object.class.isAssignableFrom(String.class) = true
Object.class.isAssignableFrom(Object.class) = true
String.class.isAssignableFrom(Object.class) = false
Object.class.isInstance(s) = true
Object.class.isInstance(o) = true
String.class.isInstance(o) = false
分享到:
评论

相关推荐

    isAssignableFrom

    标题中的"IsAssignableFrom"是Java编程语言中一个重要的方法,主要用在类或接口的类型检查上。这个方法属于java.lang.Class类,用于判断一个类是否可以被赋值给另一个类或者接口。也就是说,如果A类是B类的父类...

    Java中isAssignableFrom的用法详解

    在Java编程语言中,`Class` 类提供了一个非常有用的方法 `isAssignableFrom()`. 这个方法主要用于判断一个类或接口是否可以被赋值给另一个类或接口,即判断前者是否是后者的超类或超接口。这个功能在泛型、反射以及...

    判断类的缓存大小

    本文将深入探讨如何通过Java内置的关键字`instanceof`以及类方法`isInstance(Object obj)`和`isAssignableFrom(Class<?> cls)`来判断类的缓存大小及其相关知识点。 #### `instanceof`关键字 `instanceof`关键字...

    Damaer#Coding#instanceof用法详解1

    1. instanceof关键字 2. isInstance()方法 3. instanceof,isInstance,isAssignableFrom区别是什

    Java类和成员上的一些方法实例代码

    isInstance方法是Java语言中用于判断对象是否是某个类或者其子类的实例的方法。该方法的语法结构为:clazz.isInstance(obj),其中clazz是类对象,obj是需要判断的对象。如果obj是clazz或者clazz的子类的实例,则该...

    Java对象类型的判断详解

    本文将深入探讨Java中三种主要的判断对象类型的手段:`instanceof`、`Class.equals()`以及`Class.isInstance()`和`Class.isAssignableFrom()`。 1. `instanceof` 关键字: `instanceof` 是Java中最常用的判断对象...

    utils-assertor:断言实用程序(轻松声明参数并引发特定异常)

    效用断言者 Codecov树和森伯斯特: 工作进度: < groupId>fr.landel.utils < artifactId>utils-assertor < version>1.1.5 概括 ... isAssignableFrom hasHashCode 验证 大批 hasLength h

    C#中实现判断某个类是否实现了某个接口

    简单来说,可以使用Type.IsAssignableFrom方法: typeof(IFoo).IsAssignableFrom(bar.GetType()); typeof(IFoo).IsAssignableFrom(typeof(BarClass)); 从字面意思可以看出,IsAssignableFrom表示BarClass类型能否...

    反射取继承子类.rar

    但我们可以自定义解决方案,通过遍历所有已加载的类,并检查它们是否通过`isAssignableFrom()`方法表明它们是目标类的子类。以下是一个简单的示例: ```java public List<Class<?>> getAllSubclasses(Class<?> ...

    java反射深入剖析(推荐)

    4. 检查类的属性:`isInterface()`, `isEnum()`, `isAssignableFrom()`, `isInstance()`等方法用于判断类的特性。 Java反射的应用场景广泛,如框架开发(如Spring、Hibernate)、动态代理、代码生成工具(如JPA的...

    ASP的一个面向接口的反射例子

    在这个代码片段中,`Type.GetType(serviceName)`使用字符串服务类型名获取对应的类型对象,`typeof(IService).IsAssignableFrom(serviceType)`检查该类型是否实现了`IService`接口,`Activator.CreateInstance...

    SonarQube检测出的bug、漏洞以及异味的修复整理

    比较类时,应避免依赖类名,而应使用`instanceof`或`Class.isAssignableFrom()`方法,以确保类型安全。 9. **Prevent int promotion with & 0xff**: 当处理字节时,使用`& 0xff`确保不会发生意外的整数提升。这...

    android_jni函数.docx

    jboolean IsAssignableFrom(JNIEnv* env, jclass clazz1, jclass clazz2); ``` - **参数:** - `env`: JNI接口指针。 - `clazz1`: 第一个类参数。 - `clazz2`: 第二个类参数。 - **返回值:** - 如果`clazz1`...

    传递参数SendArgs

    } else if (clazz.isAssignableFrom(Serializable.class)) { return (T) bundle.getSerializable(key); } else { // 其他基本类型 return (T) bundle.getString(key); } } return null; } public void ...

    .NET 命名空间类名判断

    在C#中,可以使用`typeof(T).IsAssignableFrom(typeof(IDisposable))`这样的方法来检查类型T是否派生自或实现了IDisposable接口。如果返回`true`,则表明该类实现了IDisposable。 例如: ```csharp if (typeof...

    java判断class子类或父类的实例方法

    判断一个类是否为另一个类的子类或父类可以使用 Class 对象的 isAssignableFrom() 方法,该方法返回一个布尔值,表示该类是否为另一个类的子类或父类。 在 Java 中,我们可以使用反射机制来获取类中的成员变量、...

    corejava源码-core:一个高级且高度优化的Java库,用于构建框架:它对扫描类路径,在运行时生成类,促进使用反射,扫描文件系统,执行

    isAssignableFrom”方法,则返回false)。 现在我们将看到: 要获得帮助,您可以到,然后在主题中提问,也可以在上提问。 在您的项目中包括Burningwave Core 要在您的项目中包括Burningwave Core库,只需与Apache ...

    .net发射插件的实现

    type.IsAbstract && typeof(IPlugin).IsAssignableFrom(type)) { pluginInstance = (IPlugin)Activator.CreateInstance(type); break; } } ``` 4. **调用插件**:一旦找到并实例化了插件,我们就可以通过调用`...

    反射简单示例

    反射还可以用于检查类是否实现了特定接口或继承自特定父类,使用`isAssignableFrom()`方法。例如: ```java if (String.class.isAssignableFrom(clazz)) { System.out.println("Class is a string-like."); } ``` ...

Global site tag (gtag.js) - Google Analytics