adf

注解在Java中是如何工作的?

笑着哭i 提交于 2019-12-01 22:41:46
来一点咖啡,准备好进入注解的世界。 注解一直是 Java 的一个非常重要的部分,它从 J2SE 5.0 开始就已经存在了。在我们的应用程序代码中,经常看到 @Override 和 @Deprecated 这样的注解。在本文中,我将讨论注解到底是什么,为什么引入注解,它们是如何工作的,如何编写自定义注解(有示例代码),注解的有效场景是什么,最后是注解和 ADF。这将是一个很长的帖子,所以来一点咖啡,准备好进入注解的世界。 1. 注解是什么? 用一个词来可以解释: 注解即是元数据 。元数据是关于数据的数据。所以注解是代码的元数据。举个例子,查看下面的代码。 @Override public String toString() { return "This is String Representation of current object."; } 我在以上代码中重写 toString() 方法时使用了 @Override 注解。即使我不使用 @Override ,代码仍然能够正常工作,没有任何问题。那么,这个注解的优点是什么?又代表了什么? @Override 告诉编译器,此方法是一个重写的方法(有关该方法的元数据),如果父类中不存在此类方法,则引发编译器错误(超类中没有被覆盖其的方法)。现在,如果我犯了一个排版错误,并使用方法名为 toStrring() {double r}

c# 获取 Apk ,Aar 文件包名

房东的猫 提交于 2019-11-27 05:32:28
最近项目有个需求,需要拿到前端上传的Apk或者Aar文件里面的包名. 在这里贡献出来,方便有需求的小伙伴. 项目是 asp.net core 2.2 需要安装 nuget : AndroidXml SharpCompress using AndroidXml; using SharpCompress.Archives; using System.Data; using System.IO; using System.Linq; using System.Xml; namespace ******** { /// <summary> /// 包阅读器 /// </summary> public static class PackageReader { /// <summary> /// 获取Apk包名 /// </summary> /// <param name="stream">文件流</param> /// <returns></returns> public static string GetPackageNameFromApk(Stream stream) { using (IArchive zipReader = ArchiveFactory.Open(stream)) { IArchiveEntry adf = zipReader.Entries