美文网首页
Java Class类

Java Class类

作者: Tinyspot | 来源:发表于2022-08-11 07:34 被阅读0次

Class

/**
 * Instances of the class Class represent classes and interfaces in a running Java application.
 * 
 * Type parameters: <T> – the type of the class modeled by this Class object. For example, the type of String.class is Class<String>. Use Class<?> if the class being modeled is unknown.
 */
public final class Class<T> implements java.io.Serializable,
                              GenericDeclaration, Type, AnnotatedElement {}

Methods

isAssignableFrom()

/**
 * 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
 * Params: cls – the Class object to be checked
 * Returns: the boolean value indicating whether objects of the type cls can be assigned to objects of this class
 * 
 * X.class.isAssignableFrom(cls) ==> 判断 cls 类型的对象是否为 X 类型的实例
 * 即判断 X 与 cls 所属的类/接口是否相同,或者 X 是 cls 的父类/父接口
 */
public native boolean isAssignableFrom(Class<?> cls);

示例:

// public final class String implements CharSequence {}
Class<String> stringClass = String.class;
Class<CharSequence> charSequenceClass = CharSequence.class;

boolean b = charSequenceClass.isAssignableFrom(stringClass); // true
boolean b2 = stringClass.isAssignableFrom(charSequenceClass); // false

isInstance()

/**
 * Determines if the specified Object is assignment-compatible with the object represented by this Class.
 * Params: obj – the object to check
 * Returns: true if obj is an instance of this class
 */
public native boolean isInstance(Object obj);

示例:

/*
 * X.class.isInstance(obj) ==> 判断 对象obj 是否可以作为X类的实例
 * 等价:obj instanceof X 
 * 关键字 instanceof 更简洁,isInstance() 更灵活
 */

其他

类名.class vs 对象.getCalss()

public toString() {
    return getClass().getName() +"@" + Integer.toHexString(hashCode());
}

相关文章

  • [Java]重学Java-成员与方法

    Java类 Java中的类都可以抽象成Class,Class的组成大致有: Class: 类型,许多Java框架的...

  • Class类

    什么是Class类 Class类是java.lang包中的类,是java反射中的一个特别重要的类,因为Class类...

  • java反射reflect

    Class类 java中类是谁的对象? 类是对象,类是java.lang.Class类的实例对象(there is...

  • 黑马程序员-反射

    反射 1.Class类 Class类:Java程序中的各个Java类属于同一类事物,描述这类事物的Java类名就是...

  • java基础整理02--反射的基础知识点

    1、Class类是啥? java程序中的各个java类是属于同一类事物,描述这类事物的java类名就是Class。...

  • Java学习之反射

    一、Class 1、概述: 1、Class是Java程序中各个Java类的总称;它是反射的基石,通过Class类来...

  • java 泛型方法的两种写法

    这种需要传入 类名.class(class对象)(java有两类对象,Class对象和实例对象。更多参考Java的...

  • JavaExam

    Java基本编译操作 类,对象 类What is a Java class?➢ A template for a ...

  • JAVA高级(9)—— 反射

    反射的基石-Class类 Java程序中的各个Java类属于同一类事物,描述这类事物的Java类名就是Class。...

  • java.lang.Class<T>类源码解读

    Class类是什么? Class是一个类,位于java.lang包下。在Java中每个类都有一个相对应的Class...

网友评论

      本文标题:Java Class类

      本文链接:https://www.haomeiwen.com/subject/lyudirtx.html