首页
学习
活动
专区
圈层
工具
发布

【Java】基础52:注解,没有想象中那么简单

对于刚开始学Java的人来说,可能都没有注意这个警告,而该注解可以使编译器不要报出警告信息。...2自定义注解 Java里非常重要的四大类型: Class:类 Interface:接口 Enum:枚举 Annotation:注解 它们的创建方式是很相似的: ?...但是注解只有属性,没有任何方法。 如果要给注解属性定义默认值,,可以使用 default 关键字 ? 但是一般不会直接赋值,都是由外部使用时才赋值的。...如果注解中只有一个属性,可以将属性名定义为 value,这样使用该注解时可以省略 value= 也就是说注解中若是只有一个value属性,使用它时直接就可以赋值,比如:@MyAnnotation(“刘小爱...同时利用Class对象获取对应的构造器,也就是getConstructor()方法: 如果是无参构造,方法参数就没有。 如果是有参构造,方法参数为构造方法参数类型对应的Class对象。

46120

用好 Java 中的枚举,真的没有那么简单!

enum关键字在 java5 中引入,表示一种特殊类型的类,其总是继承java.lang.Enum类,更多内容可以自行查看其官方文档。...《Effective Java 》和《Java与模式》都非常推荐这种方式,使用这种方式方式实现枚举可以有什么好处呢?...虽然这种方法还没有广泛采用,但是单元素的枚举类型已经成为实现 Singleton的最佳方法。...—-《Effective Java 中文版 第二版》 《Java与模式》 “《Java与模式》中,作者这样写道,使用枚举来实现单实例控制会更加简洁,而且无偿地提供了序列化机制,并由JVM从根本上提供保障...补充 我们在上面讲到了,我们可以通过在枚举类型中定义属性,方法和构造函数让它变得更加强大。

1.7K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    用好Java中的枚举,真的没有那么简单!

    enum关键字在 java5 中引入,表示一种特殊类型的类,其总是继承java.lang.Enum类,更多内容可以自行查看其官方文档。...” 你可以通过在枚举类型中定义属性,方法和构造函数让它变得更加强大。...虽然这种方法还没有广泛采用,但是单元素的枚举类型已经成为实现 Singleton的最佳方法。...—-《Effective Java 中文版 第二版》 ” 《Java与模式》 “《Java与模式》中,作者这样写道,使用枚举来实现单实例控制会更加简洁,而且无偿地提供了序列化机制,并由JVM从根本上提供保障...补充 我们在上面讲到了,我们可以通过在枚举类型中定义属性,方法和构造函数让它变得更加强大。

    1.5K20

    Java中只有按值传递,没有按引用传递!

    今天,我在一本面试书上看到了关于java的一个参数传递的问题: 写道 java中对象作为参数传递给一个方法,到底是值传递,还是引用传递? 我毫无疑问的回答:“引用传递!”...,并且还觉得自己对java的这一特性很是熟悉! 结果发现,我错了! 答案是: 值传递!Java中只有按值传递,没有按引用传递!...此后,在changeValue()方法中对x的一切操作都是针对x所指向的这个存储单元,与num所指向的那个存储单元没有关系了!...自然,在函数调用之后,num所指向的存储单元的值还是没有发生变化,这就是所谓的“值传递”!值传递的精髓是:传递的是存储单元中的内容,而非地址或者引用!...接下来,就来看java中的对象参数是怎么传递的: 同样,先给出一段代码: Java代码 ... ...

    1.7K90

    用好Java中的枚举真的没有那么简单(1)

    enum关键字在 java5 中引入,表示一种特殊类型的类,其总是继承java.lang.Enum类。 枚举在很多时候会和常量拿来对比,可能因为本身我们大量实际使用枚举的地方就是为了替代常量。...PizzaStatus.ORDERED.name()); // ORDERED System.out.println(PizzaStatus.ORDERED); // class java.lang.String...使用 == 比较枚举类型 由于枚举类型确保JVM中仅存在一个常量实例,因此我们可以安全地使用 == 运算符比较两个变量,如上例所示;此外,== 运算符可提供编译时和运行时的安全性。...首先,让我们看一下以下代码段中的运行时安全性,其中 == 运算符用于比较状态,并且如果两个值均为null 都不会引发 NullPointerException。

    63310

    找到java代码中没有被使用的公用方法

    最近,我打算对我们项目的代码进行清理,准备把一些没有被使用到的公用方法清理掉,但是我在网络找了一遍,像PMD,Findbugs等静态工具,都只能找到没有被使用的私有方法。...无奈之下,只能直接写代码来实现这个功能,具体代码如下: package com; import java.io.File; import java.io.FileReader; import java.io.RandomAccessFile...的所有类型   for (int i = 0; i < lists.length; i++)   {    if (lists[i].equals(str))    {     //包含在列表中     ...= 0; i < classList.size(); i++)    {     //获取一个数据     classObject = classList.get(i);     //得到一个类中没有使用的属性列表...unUsedAttrList.isEmpty()))     {      //增加数据      result.addAll(unUsedAttrList);     }     //得到一个类中没有使用的属性列表

    2K10

    Java 并没有死!

    在过去的十年中,Java发生了很多变化。其中一些变化似乎与Java本身无关,却无比重要。 例如,廉价的内存对于生产软件中大规模重新采用函数编程起着举足轻重的作用。...同样,Java也在现代化的竞争中不断落后,当新功能出现时,你总感觉在经历了诸多波折后,它们终于成为了现实。 例如,当他们第一次引入lambdas时,你的反应不是:“哇!欢呼吧!”...另一方面,人们没有意识到Java的最大成就不在于语言本身。 良好的生态系统 在规划大型软件时,让我想起Java的另一个因素就是Java的生态系统。...Java这个霸主并没有死,虽然有些咳嗽。然而,它的后代将继续传承它的遗产。 Scala。我的第二个心中所爱。这是一种非常强大的语言,它是静态类型、面向对象的函数式编程语言。...总结 我在这个领域已经很长时间了,所以我有理由相信我对Java这门编程语言的某些特质有了一定的了解。 在过去10年中,这个领域的发展加快了速度,但是这些发展主要集中在某些领域。

    47130

    解决 java -jar 报错:xxx.jar 中没有主清单属性

    问题复现在使用 java -jar xxx.jar 命令运行 Java 应用程序时,遇到了以下错误:xxx.jar 中没有主清单属性这个错误表示 JAR 文件缺少必要的启动信息,Java 虚拟机无法找到应用程序的入口点...错误原因当你使用 java -jar 命令运行一个 JAR 文件时,Java 虚拟机会在该 JAR 的 META-INF/MANIFEST.MF 文件中查找 Main-Class 属性,以确定应用程序的入口点...步骤一:在 pom.xml 中添加或修改 配置在你的 pom.xml 文件中,找到或添加 部分。...步骤三:运行生成的 JAR 文件使用以下命令运行应用程序:java -jar target/xxx.jar如果配置正确,应用程序应该能够正常启动,不再出现 “没有主清单属性” 的错误。...结论通过在 pom.xml 文件中正确配置 Maven 插件,可以解决 java -jar 命令运行时出现的 “没有主清单属性” 的错误。

    6.1K01

    java -jar 中没有主清单属性_idea中jar包已经导入但是还是报错

    idear 打包报:jar中没有主清单属性 部分参考自,InteliJ IDEA生成可执行jar运行提示没有主清单属性 – JavaShuo 并完善之。...不然打成的jar中META-INF/MANIFEST.MF不含有Main Class信息,生成可执行jar运行会提示没有主清单属性)默认的时X:\你的项目目录\src\main\java 后面的2级目录要删除...: E:\develop\java\maven\NettyDemo\out\artifacts\NettyDemo_jar>java -jar NettyDemo.jar NettyDemo.jar中没有主清单属性...看了这个文章: InteliJ IDEA生成可执行jar运行提示没有主清单属性 – JavaShuow 我尝试把 “我的idea 设置发布jar包时默认:E:\develop\java\maven...\java\maven\NettyDemo\out\artifacts\NettyDemo_jar>java -jar NettyDemo.jar 运行成功,不在报“NettyDemo.jar中没有主清单属性

    1.9K30

    Java 程序员排行前 10 的错误,你有没有中?

    java.util.Arrays.ArrayList类实现了set(), get(),contains()方法,但是并没有实现增加元素的方法(事实上是可以调用add方法,但是没有具体实现,仅仅抛出UnsupportedOperationException...但是在Java中,这种数据结构叫做HashMap。HashTable与HashMap的一个主要的区别是HashTable是同步的,所以,通常来说,你会使用HashMap,而不是Hashtable。...LinkedHashMap Top 10 questions about Map 使用集合原始类型(raw type) 在Java中,原始类型(raw type)和无界通配符类型很容易让人混淆。...在Java中,如果一个类没有定义构造方法,编译器会默认插入一个无参数的构造方法;但是如果一个构造方法在父类中已定义,在这种情况,编译器是不会自动插入一个默认的无参构造方法,这正是以上demo的情况; 对于子类来说...,不管是无参构造方法还是有参构造方法,都会默认调用父类的无参构造方法;当编译器尝试在子类中往这两个构造方法插入super()方法时,因为父类没有一个默认的无参构造方法,所以编译器报错; 要修复这个错误,

    1.1K10

    nextline函数_Java 中nextLine()方法没有执行直接跳过解决办法

    使用Java的Scanner类nextLne()方法从显示器输入数据时,nextInt()后面的nextLine()直接跳过没有执行; 截图:第三个输入直接跳过 通过上网的查找我终于发现了问题出在哪里:...语句块(有时叫做复合语句),是用花括号扩起的任意数量的简单Java语句.块确定了局部变量的作用域.块中的程序代码,作为一个整体,是要被一起执行的.块可以被嵌套在另一个块中,但 … Java中的方法应用...例: publi … Java学习之路(二):Java中的方法 Java中的方法 概念: 为什么要有方法: 提高代码的复用性 什么是方法: 完成特定功能的代码块 格式: 修饰符 返回值类型...方法名(参数){ 方法体语句: return 返回值: } 1.修饰符:例 … Java学习笔记十一:Java中的方法 Java中的方法 一:什么是方法: 所谓方法,就是用来解决一类问题的代码的有序组合...,并对字节码进行解 … jQuery Validate W3C内容 导入 js 库 Mybatis第九篇【基于Maven在Idea下Mybatis逆向工程】 前言 在Intellij idea下,没有学习

    1.4K20

    java jar 没有主清单属性_Spring Boot jar中没有主清单属性的解决方法「建议收藏」

    使用Spring Boot微服务搭建框架,在eclipse和Idea下能正常运行,但是在打成jar包部署或者直接使用java -jar命令的时候,提示了xxxxxx.jar中没有主清单属性: D:\hu-git...\spring-xxx-xxx\target>java -jar spring-cloud-eureka-0.0.1-SNAPS HOT.jar spring-xxx-xxx-0.0.1-SNAPSHOT.jar...中没有主清单属性 通过maven打jar包:mvn install, 或者在IDE中右击选择Run as -> maven install。...中没有主清单属性,也就是说没有按照SpringBoot的要求,生成这些必须的属性。...到此这篇关于Spring Boot jar中没有主清单属性的解决的文章就介绍到这了 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

    4.9K30
    领券