欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

记录踩过的坑-Java

程序员文章站 2022-05-20 08:29:52
...

目录

运行时识别对象和类的信息

Field

Java方法形参中的‘...’

java.net.NetworkInterface

JUnit @Ignore

LinkedHashMap


运行时识别对象和类的信息

在 Java 中有两种方式可以让我们在运行时识别对象和类的信息。一种是 RTTI(运行时类型识别:Run-Time Type Identification),它假定了我们在编译时已经知道了所有的类型;另一种是我们本文要说的反射机制,它允许我们在运行时获取和使用类的信息。无论是 RTTI 还是反射,其本质都是一样的,都是去动态的获取类的信息。它们唯一不同的是,RTTI 在编译时期知道要解析的类型,而反射是在运行时才知道要解析的类型。

Field

Field是一个类,位于java.lang.reflect包下。在Java反射中Field类描述的是类的属性信息,功能包括:

  • 获取当前对象的成员变量的类型
  • 对成员变量重新设值

Field使用示例:

class Test{

private int a; //private field私有域

protected double b; //protected field保护域

public String c; //public field公共域

Test d; //default access field默认访问域

public static Object e; //public static field公共静态域

......

} 

Java方法形参中的‘...’

如果是在方法形参里面出现数据类型后面加三个点,表示的是可变参数,即传入的参数可以随意,你传多少个参数都被放到一个列表里面。
例子:调用以下方法将会输出传入方法的每个变量。

public static void dealArray(int...arr) {
    for(int i: arr){
    	System.out.print(i);
    }
}

@link

语法格式:{@link 全路径包名#方法名(参数类型列表)}

可以链接代码,让注释看的更清楚易懂

{@link Constants#LONGLIVE} 的意思其实就是告诉你LONGLIVE参数在哪里,即在Constants类的LONGLIVE对象

java.net.NetworkInterface

此类表示由名称和分配给此接口的IP地址列表组成的网络接口。它用于标识多播组加入的本地接口。接口通常以诸如“le0”之类的名称而为人所知。

JUnit @Ignore

注解下的测试方法将被忽略,不被执行。

LinkedHashMap

LinkedHashMap继承于HashMap,跟HashMap一样,它也是提供了key-value的存储方式,并提供了put和get方法来进行数据存取。

HashMap是无序的,当我们希望有顺序地去存储key-value时,就需要使用LinkedHashMap了。