精华内容
下载资源
问答
  • Java中支持在类的内部...思路分析:要查看某个内部类的信息,不能直接用getCanonicalName()等方法,必须先找到该内部类的外部类,即直接继承类的标准名称,使用Class类的forName()方法创建一个对象;利用Class类的...

    Java中支持在类的内部定义类,这种类成为内部类。内部类有些像Java中的方法,可以使用访问权限限定符修饰,可以使用static修饰等。编写程序,利用Java的反射机制来查看内部类的信息。

    思路分析:

    要查看某个内部类的信息,不能直接用getCanonicalName()等方法,必须先找到该内部类的外部类,即直接继承类的标准名称,使用Class类的forName()方法创建一个对象;

    利用Class类的getDeclaredClasses()方法获得代表内部类的Class对象组成的数组;

    使用foreach遍历Class对象数组,使用Class类的getCanonicalName()方法获取每个内部类的标准名称,使用getModifiers()方法获取每个内部类的修饰符,使用getGenericInterfaces()方法获取每个内部类所实现的接口,使用getGenericSuperclass()方法获取每个内部类的直接继承类,即父类。

    代码如下:

    import java.lang.reflect.Modifier;

    import java.lang.reflect.Type;

    public class NestedClassInformation {

    public static void main(String[] args) throws ClassNotFoundException {

    Class> cls = Class.forName("java.awt.geom.Point2D");

    Class>[] classes = cls.getDeclaredClasses();// 获得代表内部类的Class对象组成的数组

    for (Class> clazz : classes) {// 遍历Class对象数组

    System.out.println("类的标准名称:" + clazz.getCanonicalName());

    System.out.println("类的修饰符:" + Modifier.toString(clazz.getModifiers()));

    Type[] interfaces = clazz.getGenericInterfaces();// 获得所有泛型接口

    System.out.println("类所实现的接口:");

    if (interfaces.length != 0) {// 如果泛型接口个数不是0则输出

    for (Type type : interfaces) {

    System.out.println("\t" + type);

    }

    } else {

    System.out.println("\t" + "空");

    }

    Type superClass = clazz.getGenericSuperclass();// 获得直接父类

    System.out.print("类的直接继承类:");

    if (superClass != null) {// 如果直接父类不是Object就输出

    System.out.println(superClass);

    } else {

    System.out.println("空");

    }

    }

    }

    }

    效果如图:

    f862e9d246c688d88f1ab41913eb3002.png

    展开全文
  • 例如,查看Joda Time jar文件:javap -cp joda-time-2.7.jar -v org.joda.time.LocalDate这里-cp参数指定jar文件在类路径中,-v指定我们想要更详细的信息,然后在jar文件中有一个类的名称.输出以:Classfile jar:file:/...

    您可以使用javap(使用-v作为详细模式),并从jar文件中指定任何类.例如,查看Joda Time jar文件:

    javap -cp joda-time-2.7.jar -v org.joda.time.LocalDate

    这里-cp参数指定jar文件在类路径中,-v指定我们想要更详细的信息,然后在jar文件中有一个类的名称.

    输出以:

    Classfile jar:file:/c:/Users/Jon/Test/joda-time-2.7.jar!/org/joda/time/LocalDate.class

    Last modified 12-Jan-2015; size 16535 bytes

    MD5 checksum d19ebb51bc5eabecbf225945eccd23ef

    Compiled from "LocalDate.java"

    public final class org.joda.time.LocalDate extends org.joda.time.base.BaseLocal implements org.joda.time.ReadablePartial,java.io.Serializable

    minor version: 0

    major version: 49

    “次要版本”和“主要版本”位是您感兴趣的位.

    当然,单个jar文件可能包含使用不同版本编译的类.

    展开全文
  • Java查看内部信息

    2014-03-27 22:28:46
    Java查看内部类信息  Java中支持在类的内部定义类,这种类成为内部类。内部类有些像Java中的方法,可以使用访问权限限定符修饰,可以使用static修饰等。编写程序,利用Java的反射机制来查看内部类的信息。  思路...

      Java查看内部类信息

      Java中支持在类的内部定义类,这种类成为内部类。内部类有些像Java中的方法,可以使用访问权限限定符修饰,可以使用static修饰等。编写程序,利用Java的反射机制来查看内部类的信息。

      思路分析:

      要查看某个内部类的信息,不能直接用getCanonicalName()等方法,必须先找到该内部类的外部类,即直接继承类的标准名称,使用Class类的forName()方法创建一个对象;

      利用Class类的getDeclaredClasses()方法获得代表内部类的Class对象组成的数组;

      使用foreach遍历Class对象数组,使用Class类的getCanonicalName()方法获取每个内部类的标准名称,使用getModifiers()方法获取每个内部类的修饰符,使用getGenericInterfaces()方法获取每个内部类所实现的接口,使用getGenericSuperclass()方法获取每个内部类的直接继承类,即父类。

      代码如下:

      import java.lang.reflect.Modifier;

      import java.lang.reflect.Type;

      public class NestedClassInformation {

      public static void main(String[] args) throws ClassNotFoundException {

      Class cls = Class.forName("java.awt.geom.Point2D");

      Class[] classes = cls.getDeclaredClasses();// 获得代表内部类的Class对象组成的数组

      for (Class clazz : classes) {// 遍历Class对象数组

      System.out.println("类的标准名称:" + clazz.getCanonicalName());

      System.out.println("类的修饰符:" + Modifier.toString(clazz.getModifiers()));

      Type[] interfaces = clazz.getGenericInterfaces();// 获得所有泛型接口

      System.out.println("类所实现的接口:");

      if (interfaces.length != 0) {// 如果泛型接口个数不是0则输出

      for (Type type : interfaces) {

      System.out.println("\t" + type);

      }

      } else {

      System.out.println("\t" + "空");

      }

      Type superClass = clazz.getGenericSuperclass();// 获得直接父类

      System.out.print("类的直接继承类:");

      if (superClass != null) {// 如果直接父类不是Object就输出

      System.out.println(superClass);

      } else {

      System.out.println("空");

      }

      }

      }

      }

    展开全文
  • 这个个人感觉如果不做安全的话,直接看API就行了,但教程上有,然后就总结一下吧,...用静态方法查看Java类的名称 直接上代码 import javax.swing.JButton; import java.lang.ClassNotFoundException; class Test {

    这个个人感觉如果不做安全的话,直接看API就行了,但教程上有,然后就总结一下吧,可能对于深入了解Java有作用,还可能对以后获取别人设计的类信息(不看他的实现部分下)有作用吧

    用静态方法查看Java类的名称

    直接上代码

    import javax.swing.JButton;
    import java.lang.ClassNotFoundException;
    class Test
    {
        public static void main(String args[])
        {
            //方法① Object.getClass()返回一个Class类对象
            Class c1 = new JButton().getClass();
            //不能使用JButton.getClass()方法
            //可先JButton b = new JButton()声明一个JButton对象的,再用getClass()来查看
            System.out.println(c1.getName());
    
            //方法② .class方法,直接通过类名就能调用
            Class c2 = JButton.class;
            System.out.println(c2.getName());
    
            //方法③ Class类的静态方法forName(String a),此方法会抛出ClassNotFoundException的异常,所以使用这个方法时要使用try-catch语句
            try{
                Class c3 = Class.forName("javax.swing.JButton");
                System.out.println(c3.getName());
            }catch(ClassNotFoundException e){
                e.printStackTrace();
            }
        }
    }

    查看类声明

    具体包括:类的修饰符(如:public class ArrayList 的public),类的名称,类的泛型参数(如ArrayList<这个里面就是泛型参数>),类的继承类(该类父类),类的实现接口,类的注解
    代码如下:

    import java.util.ArrayList;
    import java.lang.reflect.Type;
    import java.lang.reflect.TypeVariable;
    import java.lang.reflect.Modifier;
    import java.lang.annotation.Annotation;
    //之后给出Annotation的链接门,Annotation在开发Java类库的时候很重要
    class Test
    {
        public static void main(String args[])
        {
            Class<?> c = ArrayList.class;//Class<?> 在本例中相当于ArrayList<int>或者其他的
    
            System.out.println("类的名称为:" + c.getName());
    
            System.out.println("类的修饰符为:" + Modifier.toString(c.getModifiers()));
    
            //类的泛型参数
            TypeVariable<?>[] typeVariable = c.getTypeParameters();
            System.out.print("类的泛型参数为:");
            if(typeVariable.length != 0)
                for(int i = 0; i < typeVariable.length; i++)
                    System.out.println(typeVariable[i] + "\t");
            else
                System.out.println("空");
    
            //类的接口
            Type[] interface_ = c.getGenericInterfaces();
            System.out.print("类的接口为:");
            if(interface_.length != 0)
                for(int i = 0; i < interface_.length; i ++)
                    System.out.println(interface_[i] + "\t");
            else
                System.out.println("空");
    
            //输出父类
            Type superClass = c.getGenericSuperclass();
            System.out.print("类的父类为:");
            if(superClass != null)
                System.out.println(superClass);
            else
                System.out.println("空");
    
            //输出类的注释信息,但有的注释信息是不能通过这种方式完成
            Annotation[] annotations = c.getAnnotations();
            System.out.print("类的注解为:");
            if(annotations.length != 0)
                for(int i = 0; i < annotations.length; i ++)
                    System.out.println(annotations[i]);
            else
                System.out.println("空");
    
        }
    }

    输出如下:

    类的名称为:java.util.ArrayList
    类的修饰符为:public
    类的泛型参数为:E
    类的接口为:java.util.List<E>
    interface java.util.RandomAccess
    interface java.lang.Cloneable
    interface java.io.Serializable
    类的父类为:java.util.AbstractList<E>
    类的注解为:空

    Annotation的链接门:感谢www.open-open.com网站的资源

    查看类的成员

    包括:成员变量、构造方法、普通方法、内部类等

    import java.lang.reflect.Constructor;
    import java.lang.reflect.Field;
    import java.lang.reflect.Method;
    import java.util.ArrayList;
    
    class Test
    {
        public static void main(String args[])
        {
            Class<?> c = ArrayList.class;
            System.out.println("类的标准名称为:" + c.getCanonicalName());
            System.out.println("类的一般名称为:" + c.getName());
    
            System.out.println("类的构造方法:");
            Constructor<?>[] constructors = c.getConstructors();
            if(constructors.length != 0)
                for(int i = 0; i < constructors.length; i ++)
                    System.out.println("\t" + constructors[i]);
            else
                System.out.println("空");
    
            System.out.println("类的非继承变量:");//不包含其父类变量
            Field[] fileds = c.getDeclaredFields();
            if(fileds.length != 0)
                for(int i = 0; i < fileds.length; i ++)
                    System.out.println("\t" + fileds[i]);
            else
                System.out.println("空");
    
            System.out.println("类的全部变量:");
            Field[] filedsAll = c.getFields();
            if(filedsAll.length != 0)
                for(int i = 0; i < filedsAll.length; i ++)
                    System.out.println("\t" + filedsAll[i]);
            else
                System.out.println("空");
    
            System.out.println("类的非继承方法:");
            Method[] methods = c.getDeclaredMethods();
            if(methods.length != 0)
                for(int i = 0; i < methods.length; i ++)
                    System.out.println("\t" + methods[i]);
            else
                System.out.println("空");
    
            System.out.println("类的所有方法:");
            Method[] methodsAll = c.getMethods();
            if(methodsAll.length != 0)
                for(int i = 0; i < methodsAll.length; i ++)
                    System.out.println("\t" + methodsAll[i]);
            else
                System.out.println("空");
        }
    }
    展开全文
  • Java中,实用程序是一个定义一组执行常用功能的方法的。这篇文章展示了最常用的Java实用程序...这些方法的名称通常表明它们的作用。如果方法名称不够直观,您还可以查看其他开发人员如何在他们的开源项目中使...
  • Java中,实用程序是一个定义一组执行常用功能的方法的。这篇文章展示了最常用的Java实用程序...这些方法的名称通常表明它们的作用。如果方法名称不够直观,您还可以查看其他开发人员如何在他们的开源项目中使...
  • 一、获得Class对象有下列四种方式:使用Class类的forName(String className) 静态方法,该静态方法需要传入类的全限定名称字符串。调用某个类的class属性来获得该类对应的class对象。调用某个对象的getClass()方法。...
  • 一、概述如何去尝试找到Java中给定类的所有子类(或给定接口的所有实现者)?到目前为止,我有一种方法可以执行此操作,但是我发现它效率很低(至少可以这样说)。方法是:获取类路径上存在的所有类名称的列表加载每个类...
  • 学习目的了解java.lang包包含和作用学会查看java.lang包下和接口底层源码实现掌握java.lang包常用接口和,以及常用方法二、java.langlang包提供利用 Java 编程语言进行程序设计基础。2.1 接口接口...
  • Java中,实用程序是一个定义一组执行常用功能的方法的。这篇文章展示了最常用的Java实用程序...这些方法的名称通常表明它们的作用。如果方法名称不够直观,您还可以查看其他开发人员如何在他们的开源项目中使...
  • Java中,实用程序是定义一组执行通用功能的...这些方法的名称通常指示它们的作用。如果方法名称不够直观,您还可以查看其他开发人员如何在其开源项目中使用它们。 org.apache.commons.io.IOUtils closeQuie
  • 1.双击选中需要查看的接口名称,然后右击选择“Show in Relation Window” 2.然后在右侧会弹出一个Relation窗口 如果没有列出对应实现,可以在接口名上再次右击,依次选择“View Relation”-"...
  • Java中,实用程序是定义一组执行通用功能的...这些方法的名称通常指示它们的作用。如果方法名称不够直观,您还可以查看其他开发人员如何在其开源项目中使用它们。 org.apache.commons.io.IOUtils closeQuietly()
  • 项目中创建账户类 Account,类中包括账户名称name、 ThreadLocal 类的引用变量amount,表示存款 创建消费类 DailyConsmption实现Runnable 接 口。声明 账户类型的引用 account, 使 用new Random() 实例化一个随机...
  • Java中,实用程序是定义一组执行通用功能的方法的。这篇文章展示了最常用的Java实用工具及其最常用...这些方法的名称通常指示它们的作用。如果方法名称不够直观,您还可以查看其他开发人员如何在其开源项目...
  • Java中,实用程序是一个定义一组执行常用功能的方法的。这篇文章展示了最常用的Java实用程序...这些方法的名称通常表明它们的作用。如果方法名称不够直观,您还可以查看其他开发人员如何在他们的开源项目中使...
  • 选中类的名称,然后按F4
  • 模拟用户使用这两张银行卡进行消费的过程,并打印出消费明细 实现思路:项目中创建账户类 Account,类中包括账户名称name、 ThreadLocal 类的引用变量amount,表示存款创建消费类 DailyConsmption实现Runnable 接 口...
  • Java中,实用程序是定义一组执行通用功能的...这些方法的名称通常指示它们的作用。如果方法名称不够直观,您还可以查看其他开发人员如何在其开源项目中使用它们。 org.apache.commons.io.IOUtils closeQuietly()
  • Java中,实用程序是定义一组执行通用功能的...这些方法的名称通常指示它们的作用。如果方法名称不够直观,您还可以查看其他开发人员如何在其开源项目中使用它们。 org.apache.commons.io.IOUtils closeQuie
  •  使用Class类的forName(String className) 静态方法,该静态方法需要传入类的全限定名称字符串。  调用某个类的class属性来获得该类对应的class对象。  调用某个对象的getClass()方法。  调用ClassLoad...
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼Class类 代表类的结构信息Method类代表方法的结构信息Field类代表属性的结构信息Construction类代表构造器的结构信息Annotation类代表注解的结构信息一、Class类常用方法...
  • Java中,实用程序是一个定义一组执行常用功能的方法的。这篇文章展示了最常用的Java实用程序...这些方法的名称通常表明它们的作用。如果方法名称不够直观,您还可以查看其他开发人员如何在他们的开源项目中使...
  • 1_异常(异常概述和分类)A:异常概述异常就是Java程序在运行过程中出现错误。B:异常分类通过API查看ThrowableError服务器宕机,数据库崩溃等ExceptionC:异常继承体系* Throwable* Error* Exception* ...
  • Java中,实用程序是定义一组执行公共函数的方法的。本文展示了最常用的Java实用程序及其最常用的方法。...方法的名称通常表示它们的功能。如果方法名不够直观,您还可以查看其他开发人员如何在其开...
  • Java中,实用程序是一个定义一组执行...这些方法的名称通常表明它们的作用。如果方法名称不够直观,您还可以查看其他开发人员如何在他们的开源项目中使用它们。 1. org.apache.commons.io.IOUtils closeQuietly
  • 排名前 16 的 Java 工具,你都用过哪些? 在Java中,实用程序是定义一组...这些方法的名称通常指示它们的作用。如果方法名称不够直观,您还可以查看其他开发人员如何在其开源项目中使用它们。 1org.apache.comm.

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 676
精华内容 270
关键字:

java查看类的名称

java 订阅