首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    获取对象属性类型、属性名称、属性值的研究:反射和JEXL解析引擎

    先简单介绍下反射的概念:java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java...反射是java中一种强大的工具,能够使我们很方便的创建灵活的代码,这些代码可以在运行时装配。在实际的业务中,可能会动态根据属性去获取值。...[fields.length]; ListMapString, Object>> list = new ArrayList(); MapString, Object> infoMap...代码并执行 * * @param jexlExp 需要转换的字符串 * @param map 参数集合 * @return 方法执行结果 * 如: * String jexlExp...*/ public static Object invokeMethod(String jexlExp, MapString, Object> map) { JexlEngine jexl

    8.8K50

    设计一个类使其具有动态属性,承接灵活可变的动态JSON

    前言 在 java 中,如何让一个类具有动态属性。这里将介绍一种技巧,可以使得你的类,具有良好的动态属性的能力。...普遍的做法是在类中申明一个 map 属性,把想要扩展的属性放入这个 map 中,这样就可以使得类具有动态属性的能力了。...public interface AttrDynamic { /** * 获取动态成员属性map * * @return 动态成员属性map */ MapString, Object> getAttr...attrName) { MapString, Object> map = getAttr(); return (T) map.get(attrName);; } } 类定义 只需要实现接口,就能拥有动态属性的功能...对类型明确的说明 在类的扩展属性文件 BirdAttrOption.java 中,属性名由 BirdAttrOption.java 统一来管理。

    89210

    Java-高阶-集合框架

    Object set(int index, Object element):用元素element取代位置index上的元素,并且返回旧元素的取值。...基于动态数组实现 随机访问快(O(1)) 插入和删除相对慢(O(n)) 非线程安全 ArrayList 类位于 java.util 包中,使用前需要引入它,语法格式如下: import...ensureCapacity():如果要向ArrayList中添加大量元素,可使用此方法对Object[]数组进行指定的扩容。...TreeSet TreeSe中对象的比较方法 有一部分类已实现了java.lang.Comparable接口,如基本类型的包装类、String类等,它们在compareTo()方法中定义好了比较对象的规则...按键集合迭代 // 先获取所有键,再通过键获取值 for (String key : map.keySet()) { Integer value = map.get(key); System.out.println

    13210

    Java进阶-集合(2)

    一、Map概述 1、Map Map是一种键-值对(key-value)集合, 集合中的每一个元素都包含一个键(key)对象和一个值(value)对象。...key 不允许重复,value 可以重复(同一个 Map 对象的任何两个 key 通过 equals 方法比较总是返回 false) Map 中的 key 和 value 之间存在单向一对一关系,...:获取指定键对应的值 put(K key, V value)、putAll(Map m):添加键值对(已有则覆盖)/复制指定 Map 中的键值对到本 Map 中 remove(Object...6、Map集合的遍历(4种方法) 6.1 方法说明 List 和 Set 集合的遍历不同,Map有两组值(可以只遍历值,或只遍历键,或同时遍历),Map 及实现 Map 的接口类(如 HashMap、TreeMap...String value = map.get(key); //get()方法获取值,键取值 System.out.println(key+":"+value

    40521

    Java集合(Collection、Iterator、Map、Collections)介绍与使用

    我们之前讲解了数组,数组的大小长度是固定的,后期无法动态扩展,所以在项目开发中我们基本会用集合来存储数据,Java 集合就像一种容器,可以动态地把多个对象的引用放入容器中。...Map接口提供了一些方法来处理键值对,如根据键获取值,根据键添加或更新值等1.Map类结构图片Map接口是Java集合框架中的一部分,它提供了许多方法来操作键值对,一般我们使用Map的子类HashMap...以下是Map的一些常用方法:put(K key, V value):将一个键值对添加到Map中。如果键已经存在,则更新对应的值。get(Object key):根据指定的键从Map中获取对应的值。...remove(Object key):从Map中删除指定的键值对。containsKey(Object key):检查Map中是否包含指定的键。...containsValue(Object value):检查Map中是否包含指定的值。size():返回Map中的键值对数量。clear():从Map中删除所有的键值对。

    1K30

    Java程序设计(基础)- 数据类型

    byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型,在内存中占16位,即2个字节,取值范围-32768~32717,默认值0...> getDeclaringClass() 返回与此枚举常量的枚举类型相对应的 Class 对象 String name() 返回此枚举常量的名称,在其枚举声明中对其进行声明 int ordinal()...引用数据类型 一、类Class引用 可以是我们创建的,这里我不多讲,主要是讲解几个java库中的类 Object :Object是一个很重要的类,Object是类层次结构的根类,每个类都使用Object...Object强制转换成Interger类 String :String类代表字符串,Java 程序中的所有字符串字面值(如”abc”)都作为此类的实例来实现。...这里我们主要是用String List Map Object 是最常用Number ArrayList Arrays等 三、数组引用 数组:存储在一个连续的内存块中的相同数据类型(引用数据类型)

    1.2K20

    Java成神路 —— Map

    Map 概述和特点 1.1 Map 概述 Map 是一种 键值对(Key-Value) 集合,Map 集合中的每一个元素都包含一个键对象和一个值对象。...Map 的基本功能 2.1 方法介绍 方法名 说明 V put(K key,V value) 添加元素 V remove(Object key) 根据键删除键值对元素 void clear() 移除所有的键值对元素...isEmpty() 判断集合是否为空 int size() 集合的长度,也就是集合中键值对的个数 2.2 示例代码 import java.util.HashMap; import java.util.Map...Map 获取功能 3.1 方法介绍 方法名 说明 V get(Object key) 根据键获取值 Set keySet() 获取所有键的集合 Collection values() 获取所有值的集合...map.put("004","小明"); // V get(Object key):根据键获取值 System.out.println(map.get

    22310
    领券