首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

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

34920

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

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

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

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

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

1.3K20

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

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

1.1K90

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

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

47610

找到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);     }     //得到一个类没有使用的属性列表

1.6K10

Java没有死!

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

35130

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

idear 打包报:jar没有主清单属性 部分参考自,InteliJ IDEA生成可执行jar运行提示没有主清单属性 – JavaShuo 并完善之。...不然打成的jarMETA-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.3K30

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()方法时,因为父类没有一个默认的无参构造方法,所以编译器报错; 要修复这个错误,

81410

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.1K20

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没有主清单属性的解决的文章就介绍到这了 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

2.6K30
领券