java动态更新枚举类】的更多相关文章

工作中遇到需要对枚举类的值进行动态更新 手动改不现实也不方便 现记录下来方便以后学习使用 1.在工程utils包中添加动态更新枚举类得工具类(根据自己得项目,放到指定位置调用就可以) 2.一开始陷入了误区,认为要根据我自己得枚举类去修改,addEnum和makeEnum方法因为网上示例都是两个参数得, 而我的是5个的,弄了好久(被自己蠢晕)才发现,它是个数组啊. package com.genju.ziji.dexiangmu.util; import sun.reflect.Construct…
某些情况下一个类的对象是有限而且固定的,例如性别就只有两个类(考虑大众情况).因此这种实例有限而且固定的类,java里面叫枚举类.枚举类的关键字是enum,一些基本的命名规则和文件命名等细节和一般的类一样.但是具体还是有一些区别的: 1.枚举类不能显式继承其他父类 2.非抽象枚举类不能派生子类 3.枚举类的构造器只能使用private访问控制符 4.枚举类的所有实例必须在枚举类的第一行显式列出,系统会自动为这些实例添加public static final 修饰符 5.枚举类通常是不可变类,因此…
笔记: import java.lang.*; /**一:枚举类 : enum Season implements info { s1(),s2(),s3(),s4() }; //s1--s4 放在Season类的最上面! * 1.1.values() 返回一个包含整体的数组! * 2.valueof(String name),返回对应name的类, 必须是枚举类对象的名字,否则报错! * 3.实现接口,重写抽象方法 ,不同的枚举类可以有不同的方法 */ 枚举类代码: interface inf…
JAVA中的静态加载类是编译时刻加载类  动态加载类指的是运行时刻加载类 二者有什么区别呢 举一个例子  现在我创建了一个类  实现的功能假设为通过传入的参数调用具体的类和方法 class office { public static void main(String args[]) { if("word".equals(args[0]) { word w=new word(); word.run(); } if("excel".equals(args[0]) {…
Java中我们一般会使用new关键字实例化对象然后调用该对象所属类提供的方法来实现相应的功能,比如我们现在有个主类叫Web类这个类中能实现各种方法,比如用户注册.发送邮件等功能,代码如下: /* * web功能实现类 */ public class Web { public static void main(String[] args) { //每次有新功能都需要重新加载 if("UserReg".equals(args[0])) { UserReg ur = new UserReg(…
1.一个类的实例是有限且固定的,这个类称为枚举类.比如季节类,只有四个对象(春.夏.秋.冬) 2.手动实现一个枚举类(1)通过private将构造器隐藏起来(2)把这个类的所有可能实例都使用private static final修饰的类变量来保存.(3)如果有必要,可以提供一些静态方法. package cn.it.lsl; public class Season { private final String name; private final String desc; private S…
声明:本博客为原创博客.未经同意.不得转载!原文链接为http://blog.csdn.net/bettarwang/article/details/27262809. 从Java 5開始有了枚举类,须要注意的是enum定义的类默认继承的是java.lang.Enum类而不是Object类. 同一时候注意枚举类不能派生子类(类的默认修饰符为final).其原因基于它仅仅有private构造器.那为什么要设计成这样呢? 事实上非常easy想明确,所谓枚举类就是有包括有固定数量实例(而且实例的值也固…
实例有限且固定的类成为枚举类 枚举类的实现 早期时候的实现形式: public static final int SEASON_SPRING = 1; public static final int SEASON_SUMMER = 2; public static final int SEASON_FAIL = 3; public static final int SEASON_WINTER = 4; 这种方式虽然实现简单,但存在很多问题: ①类型不安全(二者可运算) ②没有命名空间 ③打印输出…
详见:https://blog.csdn.net/zai_xia/article/details/80026325 扩展:java反射机制与动态加载类 https://www.cnblogs.com/wzk-0000/p/9322866.html 在讲解动态加载类之前呢,我们先弄清楚为什么要动态加载类,静态加载不行吗?我们可以看下面的实例: 我在文件夹里写了Office.java 类和 Word.java类,如下: Office.java class Office{ public static…
枚举类与注解 枚举类的使用 当需要定义一组常量时,强烈建议使用枚举类. 枚举类的理解:类的对象只有有限个,确定的. 若枚举只有一个对象, 则可以作为一种单例模式的实现方式. 枚举类的属性: 枚举类对象的属性不应允许被改动, 所以应该使用 private final 修饰: 枚举类的使用 private final 修饰的属性应该在构造器中为其赋值: 若枚举类显式的定义了带参数的构造器, 则在列出枚举值时也必须对应的 传入参数. 枚举类的实现: JDK5 之前需要自定义枚举类 JDK5 新增的 e…
问题引入 为了将某一数据类型的值限定在可选的合理范围内,比如季节只有四个:春夏秋冬. 什么是枚举类 Java5之后新增了enum关键字(他与class,interface关键字地位相同)用来定义枚举类,他是一个特殊的类. 可以有自己的:成员变量.方法.构造器.可以实现一个或多个接口. 一个Java源文件中最多只能定义一个public访问权限的枚举类,且改Java原文件必须和该枚举类的类名相同. 和普通类的简单区别: 1.默认继承的是java.lang.Enum类,非Object.因此不能显示的…
1.概述 枚举:一些方法在运行时,它需要数据不能是任意的,而必须是一定范围内的值,可以使用枚举解决 2.枚举的格式 enum 类名{ 枚举值 } 例子 package com.dhb.enumeration; /** * @author DSHORE / 2018-6-21 * */ enum Sex{//枚举类 //相当于:public static final Sex man=new Sex("男"); man("男") { @Override public v…
enum SeasonEnum {//枚举类: 本类规定了SeasonEnum(季节)类只能有四个对象SPRING,SUMMER,AUMUTN,WINTER //创建枚举类的的四个对象SPRING,SUMMER,AUMUTN,WINTER //枚举类的实例对象必须在类体的最前面先定义,而且必须每个实例对象都必须维护chinese成员变量 SPRING("春天"),SUMMER("夏天"),AUMUTN("秋天"),WINTER("冬天&…
1.JDK6 动态编译组件 Java SE 6 之后自身集成了运行时编译的组件:javax.tools,存放在 tools.jar 包里,可以实现 Java 源代码编译,帮助扩展静态应用程序.该包中提供主要类可以从 Java String.StringBuffer 或其他 CharSequence 中获取源代码并进行编译.接下来通过代码一步步讲述如何利用 JDK6 特性进行运行时编译. // 通过 ToolProvider 取得 JavaCompiler 对象,JavaCompiler 对象是动…
import java.lang.reflect.AccessibleObject; import java.lang.reflect.Array; import java.lang.reflect.Field; import java.lang.reflect.Modifier; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import sun.reflect.ConstructorAc…
package com.java.test.dynamicpojo; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.OutputStream; import java.lang.reflect.Method; import java.net.URI; import java.util.Arrays; import javax.tools.FileObject; import jav…
java动态加载类(反射机制) /*MyClass.java*/ public class MyClass { public int id; public String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.…
字符串和编码 字符串在String内部是通过一个char[]数组表示的,因此,可以按下面的写法: String s2 = new String(new char[] {'H', 'e', 'l', 'l', 'o', '!'}); Java字符串的一个重要特点就是字符串不可变.这种不可变性是通过内部的private final char[]字段,以及没有任何修改char[]的方法实现的. Java编译器在编译期,会自动把所有相同的字符串当作一个对象放入常量池. 两个字符串比较,必须总是使用equ…
本文参考 在上一篇"Netty + Spring + ZooKeeper搭建轻量级RPC框架"文章中涉及到了Java动态代理和CGLib代理,在这篇文章中对这两种代理方式做详解 下面是本文参考: https://www.baeldung.com/cglib https://blog.csdn.net/shallynever/article/details/103351299 https://docs.oracle.com/javase/8/docs/api/java/lang/refl…
本地debug的时候,可以实时编译并更新代码,线上也可以不停服来动态更新类,即所说的java热部署.   JDK代理的两种方式: 1.premain方式是Java SE5开始就提供的代理方式,但其必须在命令行指定代理jar,并且代理类必须在main方法前启动,它要求开发者在应用启动前就必须确认代理的处理逻辑和参数内容等等 2.agentmain方式是JavaSE6开始提供,它可以在应用程序的VM启动后再动态添加代理的方式   agentmain应用场景: 比如正常的生产环境下,一般不会开启代理功…
好久没有接触枚举类了,差不多都忘了,今天抽出个时间总结一下吧.说实话,枚举类确实能够给我们带来很大的方便. 说明:枚举类它约定了一个范围,可以理解成只可以生成固定的几个对象让外界去调用,故枚举类中的构造方法都是private类型的.进而求其次,究竟枚举类到底有何特殊之处呢? 呈上代码一览(本人也是java Android 领域的菜鸟,如有错误之处,希望大家能够给以指点) /** * 测试枚举类 * @author Administrator * @Date 2015-8-3 */ public…
成鹏致远 | lcw.cnblog.com |2014-02-04 JAVA类集 1.认识类集 类集的作用 类集实际上就是一个动态的对象数组,与一般的对象数组不同,类集中的对象内容可以任意扩充 类集的特征 这种框架是高性能的 框架必须允许不同类型的类集以相同的方式和调度互操作方式工作 类集必须是容易扩展和修改的 对象数组中包含一组对象,但是对象数组使用的时候存在一个长度的限制,那么类集是专门解决这种限制的,使用类集可以方便的向数组中增加任意多个数据 对象数组的操作中基本上都要保证对象类型的一致性…
前言 众所周知,系统里有很多比如订单状态.审核状态:性别.结算方式.交易类型等属性,这些属性只有几个值,一般用0.1.2.3等的数字标识存入数据库,每次对这些属性所属对象的增删改操作,都会在代码里给状态设置值,由于项目是多人开发的,如果每次设置值的时候都直接set 0.1.2,容易出错,而且状态假设不用0.1.2表示了,用1.2.3表示,这时候所有set状态的地方都得改变,维护麻烦.所以用常量表示状态值,甚好. 据我目前所知,系统里实现常量的方式有三种: 1,  接口常量 2,  类常量 3, …
目录 初探枚举类 枚举类-语法 枚举类的具体使用 使用枚举类的注意事项 枚举类的实现原理 枚举类实战 实战一无参 实战二有一参 实战三有两参 枚举类总结 枚举 API 总结 参考文章 微信公众号 Java技术江湖 个人公众号:黄小斜 本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下Star.Fork.Watch三连哈,感谢你的支持. 文章首发于我的个人博客…
一.泛型数组列表ArrayList 1.在Java中,ArrayList类可以解决运行时动态更改数组的问题.ArrayList使用起来有点像数组,但是在添加或删除元素时,具有自动调节数组容量的功能,而不需要为此编写任何代码. 对数组列表实施插入和删除操作效率比较低,对于小型数组来说可以接受.但是如果数组存储的元素数比较多,又经常需要在中间位置插入.删除元素,就应该考虑使用链表. ArrayList是一个采用类型参数(type parameter)的泛型类(generic class).为了指定数…
本文主要介绍的是枚举类,注解和反射.还有一些基础知识:static,基本数据类型,运算符优先级放在文中,以便查阅复习. 其中牵扯到泛型的部分,可参考本人的另一篇博客:(Collection, List, 泛型)JAVA集合框架一 1. static关键字 static可以修饰的有:属性,方法,代码块,内部类. 1.1 static修饰属性 按是否用static修饰分为静态属性和非静态属性(实例变量). 非静态属性(实例变量):当创建了类的多个对象,每个对象都独立拥有自己的非静态属性.当修改其中一…
目录 一.枚举类 ① 自定义枚举类 ② enum关键字定义枚举类 ③ enum 枚举类的方法 ④ enum 枚举类实现接口 二.注解 ① 生成文档相关注解 ②注解在编译时进行格式检查 ③注解跟踪代码的依赖性,实现替代配置文件功能 ④ 自定义注解 ⑤ jdk提供的4种元注解 ⑥ JKD8 新特性:可重复注解 ⑦ JDK8 新特性:类型注解 一.枚举类 类的对象只有有限个, 确定的. 我们称此类为枚举类. 说明: 类的对象只有有限个,确定的.如: 星期:Monday(星期一)........Sund…
可以创建几个对象? n多个:大部分的类,都可以随意创建对象,只要内存不爆掉 1个:比如单例类 有限的几个:采用单例类的设计思路,可以只允许创建少数的几个特定的对象:还有就是枚举类. 创建少数几个对象,不用枚举类实现 package testpack; public class Test1{ public static void main(String[] args) { Season s=Season.getSeason("秋天"); System.out.println(s.getN…
如果要定义一个枚举类: public enum Size { SAMLL, MEDIUM, LARGE, EXTRA, EXTRA_LARGE}; 实际上,这个声明定义的类型是一个类,它刚好有4个实例,在此尽量不要构造新对象. 因此,在比较两个枚举类型的值时,永远不需要调用equals,而直接使用"=="就可以了. 如果需要的话,可以在枚举类型中添加一些构造器.方法和域.当然,构造器知识在构造枚举常量的时候被调用.下面是一个示例: public enum Size { SMALL(&q…
枚举定义: enum是计算机编程语言中的一种数据类型.枚举类型:在实际问题中,有些变量的取值被限定在一个有限的范围内.例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等.如果把这些量说明为整型, 字符型或其它类型显然是不妥当的.为此,C语言提供了一种称为“枚举”的类型.在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚举”类型的变 量取值不能超过定义的范围.应该说明的是,枚举类型是一种基本数据类型,而不是一种构造类型,因为它不能再分解为任何基本类型. java中枚举类总…