Java-API简析_java.lang.Package类(基于JDK1.8)(浅析源码)

news/2024/10/22 18:26:32/

【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)
https://blog.csdn.net/m0_69908381/article/details/130806567
出自【进步*于辰的博客】

其实我的【Java-API】专栏内的博文对大家来说意义是不大的。因为暂且没有源码讲解,而且需要看Java-API,直接看Java-API文档就行了,也不用看博文。所以呢,这篇博文主要是写给我自己看的,也就是Java-API笔记。
因为我发现目前,我对Java-API的学习意识比较薄弱,需要慢慢习惯使用Java-API,乃至剖析源码来提升自己的源码阅读能力和编码素质。
大家如果需要Java-API文档,我上传了【https://download.csdn.net/download/m0_69908381/87691693】。

文章目录

  • 1、概述
  • 2、方法摘要
    • 2.1 `<A extends Annotation> A getAnnotation(Class<A> annotationClass) `
    • 2.2 Annotation[] getAnnotations()
    • 2.3 Annotation[] getDeclaredAnnotations()
    • 2.4 String getImplementationTitle()
    • 2.5 String getImplementationVendor()
    • 2.6 String getImplementationVersion()
    • 2.7 String getName()
    • 2.8 static Package getPackage(String name)
    • 2.9 static Package[] getPackages()
    • 2.10 String getSpecificationTitle()

1、概述

在这里插入图片描述
Package对象包含有关 Java 包的实现和规范的版本信息。通过用于加载类的 ClassLoader 实例,可以检索并获得此版本信息。通常,此信息存储在与类一起分发的清单中。

组成包的类集可以实现一个特定规范,如此一来,就可以通过规范标题、版本号和供应商字符串来标识该规范。应用程序可以询问包是否与特定版本兼容,有关详细信息,请参阅 isCompatibleWith()方法。

规范的版本号使用了一个由句点"."分隔的十进制正整数组成的语法,例如 “2.0” 或 “1.2.3.4.5.6.7”。这允许使用啊·可扩展的编号来表示主版本号次版本号缩微版本号,等等。版本规范是由下列形式的语法描述的:

SpecificationVersion: 
Digits RefinedVersionopt RefinedVersion: 
. Digits 
. Digits RefinedVersion Digits: 
Digit 
Digits Digit: 

Character.isDigit(char)会对其返回 true 的任何字符,如 0、1、2……

实现标题版本供应商字符串共同标识了一个实现,并且可以很方便地使用它们来支持出现问题时所涉及的包的准确报告。三个实现字符串内容都是特定于供应商的。实现版本字符串没有特定的语法,并且应该只在为了使它们等同于所需的版本标识符时对它们进行比较。

在每一个 ClassLoader 实例中,相同 java 包中的所有类都有相同的 Package 对象。静态方法允许通过名称当前类加载器已知的所有包的集合来找到包

另请参见:
ClassLoader.definePackage(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.net.URL)

2、方法摘要

2.1 <A extends Annotation> A getAnnotation(Class<A> annotationClass)

如果存在该元素的指定类型的注释,则返回这些注释,否则返回 null。(暂未可知)

2.2 Annotation[] getAnnotations()

返回此元素上存在的所有注释。(暂未可知)

2.3 Annotation[] getDeclaredAnnotations()

返回直接存在于此元素上的所有注释。(暂未可知)

2.4 String getImplementationTitle()

返回此包的标题。(暂未可知)

2.5 String getImplementationVendor()

返回提供该实现的组织供应商公司的名称。(暂未可知)

2.6 String getImplementationVersion()

返回该实现的版本。(暂未可知)

2.7 String getName()

返回此包的名称。

2.8 static Package getPackage(String name)

通过调用方的 ClassLoader 实例中的名称找到一个包。
示例:

Package p = Package.getPackage("com.neusoft.test");
sout p;// 打印:package com.neusoft.test

使用包全限定名,通过类加载器获取Package实例。

2.9 static Package[] getPackages()

获得调用方的 ClassLoader 实例当前已知的所有包。
示例:

Package[]arr = Package.getPackages();
for (Package p : arr)sout p;

部分打印结果:
在这里插入图片描述

2.10 String getSpecificationTitle()

返回此包实现的规范标题。(暂未可知)

本文持续更新中。。。


http://www.ppmy.cn/news/93112.html

相关文章

RHCE 第五次作业

1.总结变量的类型及含义&#xff1f; 变量类型: 1,自定义变量: 在当前的shell命令行界面设置的变量是局部变量 例: num1 namezhangsan 含义:仅在当前shell生效. 2,环境变量: 全局变量,通过export 导出后的局部变量是全局变量 例: …

“Shell“SNAT,DNAT

文章目录 一.SNAT1.1 SNAT原理1.2 SNAT的应用环境1.3 SNAT工作原理1.4 进行SNAT转换后1.5 配置SNAT策略1.6SNAT实验 二.DNAT2.1 DNAT工作原理2.2 配置DNAT策略2.3 DNAT实验 一.SNAT 1.1 SNAT原理 SNAT原理&#xff1a;修改数据包的源地址。SNAT 应用环境&#xff1a;局域网主…

探讨一次订单拆单流程

欢迎大家关注公众号「JAVA前线」查看更多精彩分享文章&#xff0c;主要包括源码分析、实际应用、架构思维、职场分享、产品思考等等&#xff0c;同时欢迎大家加我微信「java_front」一起交流学习 1 文章概述 消费者在购物时&#xff0c;电商平台会生成订单。订单相当于是购物者…

本地提权漏洞分析【网络安全】

0. 前言 CVE-2023-21752 是 2023 年开年微软第一个有 exploit 的漏洞&#xff0c;原本以为有利用代码会很好分析&#xff0c;但是结果花费了很长时间&#xff0c;难点主要了两个&#xff1a;漏洞点定位和漏洞利用代码分析&#xff0c;欢迎指正。 1. 漏洞简介 根据官方信息&a…

5月份月刊总结

5月份月刊总结 目录概述需求&#xff1a; 设计思路实现思路分析1.技术经理 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,make a better result,wait for change,challenge Sur…

使用ScreenToGif录制GIF动态图

文章目录 1.下载ScreenToGif工具2. 下载后双击下面的.msi文件进行安装3. 在编辑器中可以对所有帧添加文字描述 1.下载ScreenToGif工具 链接&#xff1a;https://pan.baidu.com/s/1rvFZSbMdNus90hbzxsJlGA 提取码&#xff1a;gyqe2. 下载后双击下面的.msi文件进行安装 按照默认…

imPlot的使用

1、概述 https://github.com/epezent/implot https://github.com/ocornut/imgui

ros学习

1创建工作空间 catkin_init_workspace 将文件夹初始化成ros文件 编译工作空间catkin_make vi ~/.bashrc 加入环境变量bashrc一下在任何终端都生效 catkin_create_pkg learning_communication通讯机制 std_msgs数据结构 rospy roscpp catkin_create_pkg mbot_description ur…