List转Map泛型通用,读取配置文件通用

一、读取配置文件通用:

 1 public class ReadConfigureClass {
 2
 3     private static final String server_port = "server.port";
 4
 5     private static final String spring_dubbo_scan = "spring.dubbo.scan";
 6
 7     public static String server;
 8     public static String spring;
 9
10     static {
11         Properties properties = new Properties();
12         try {
13             properties.load(ReadConfigureClass.class.getClassLoader().getResourceAsStream("application.properties"));
14             server = (String) properties.get(server_port);
15             spring = (String) properties.get(spring_dubbo_scan);
16
17         } catch (IOException e) {
18             e.printStackTrace();
19         }
20     }
21 }
22
23
24 ## 避免和 server 工程端口冲突
25 server.port=8081
26
27 ## Dubbo 服务消费者配置
28 spring.dubbo.application.name=consumer
29 spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
30 spring.dubbo.scan=org.spring.springboot.dubbo

二、List转Map泛型通用:

Java类:

 1 public class Parent {
 2     private Integer id;
 3
 4     private String name;
 5
 6     public Parent(Integer id, String name) {
 7         this.id = id;
 8         this.name = name;
 9     }
10
11     public Integer getId() {
12         return id;
13     }
14
15     public String getName() {
16         return name;
17     }
18
19 }

测试类:

 1 package org.spring.springboot.dubbo;
 2
 3 import org.junit.Test;
 4
 5 import java.lang.reflect.Method;
 6 import java.util.ArrayList;
 7 import java.util.HashMap;
 8 import java.util.List;
 9 import java.util.Map;
10
11 public class TestJavaFanXing {
12
13
14     @Test
15     public void test() {
16         List<Parent> list = new ArrayList<>();
17         for (int i = 0; i < 10000; i++) {
18             list.add(new Parent(i, "aaa" + i));
19         }
20         System.out.println(list.size());
21         Long start=System.currentTimeMillis();
22         Map<Long,Parent> map=list2Map(list, "getId", Parent.class);
23         System.out.println((System.currentTimeMillis()-start));
24         System.out.println(JSONObject.toJSON(map).toString());
25         //======================================================
26         System.out.println(ReadConfigureClass.server);
27         System.out.println(ReadConfigureClass.spring);
28     }
29
30
31
32     public static <K, V> Map<K, V> list2Map(List<V> list, String keyMethodName, Class<V> c) {
33         Map<K, V> map = new HashMap<K, V>();
34         if (list != null) {
35             try {
36                 Method methodGetKey = c.getMethod(keyMethodName);
37                 for (int i = 0; i < list.size(); i++) {
38                     V value = list.get(i);
39                     @SuppressWarnings("unchecked")
40                     K key = (K) methodGetKey.invoke(list.get(i));
41                     map.put(key, value);
42                 }
43             } catch (Exception e) {
44                 throw new IllegalArgumentException("field can‘t match the key!");
45             }
46         }
47
48         return map;
49     }
50
51
52 }

原文地址:https://www.cnblogs.com/wangyaobk/p/8297686.html

时间: 2024-11-02 19:07:17

List转Map泛型通用,读取配置文件通用的相关文章

Java_dbc连接数据库_使用读取配置文件的方式

1 package com.homewoek3_4.dao; 2 3 import java.io.IOException; 4 import java.io.InputStream; 5 import java.sql.Connection; 6 import java.sql.DriverManager; 7 import java.sql.PreparedStatement; 8 import java.sql.ResultSet; 9 import java.sql.SQLExcepti

java properties类读取配置文件

1.JAVA Properties类,在java.util包里,具体类是java.util.properties.Properties类继承自Hashtable类并且实现了Map接口,也是使用一种键值对的形式来保存属性集.不过Properties有特殊的地方,就是它的键和值都是字符串类型.2.properties类是集合类,里面要填充keyvalue键值对.将.properties文件里的信息加载到properties对象中.3.将.properties文件里的信息加载到properties对象

Spring读取配置文件

说明: 通常情况下,项目将有读取配置文件的需求,可以用于property文件.xml文件等.这里使用spring该对象特征可被读取,写读属性样本. demo两个属性表明经常使用的物品首先,key .value关系的map对象(类似property文件).列表对象list java对象 package eway.flight.utils; import java.util.List; import java.util.Map; import org.springframework.stereoty

boost之program_options库,解析命令行参数、读取配置文件

一.命令行解析 tprogram_options解析命令行参数示例代码: [cpp] view plaincopy #include <iostream> using namespace std; #include <boost/program_options.hpp> namespace po = boost::program_options; int main(int argc, char*argv[]) { //int level; po::options_descripti

使用Properties去读取配置文件,并获得具体内容值

有时候,写了一个配置文件,需要知道读出来的内容对不对,我们需要测试一下,看看读出来的跟我们要的是不是一样.这里写了一个工具类,用来读取配置文件里面的内容. 1.新建一个java工程,导入需要的jar包,新建一个配置文件 如下图: 2.配置文件的内容: 1 driver=com.mysql.jdbc.Driver 2 url=jdbc:mysql://localhost:3306/csdn 3 user=root 4 pwd=123456 5 initsize=1 6 maxactive=1 7

使用mybatis完成通用dao和通用service

使用通用dao和通用service可以减少代码的开发.可以将常用的增删改查放到通用dao中.对不同的or框架,基本上都有自己的实现如SpringJPA的Repository就提供了常用的增删改查方法.而MyBatis借助代码生成工具也可以生成常用方法的映射 这里只针对Mybatis.如果使用代码生成工具,会有一个问题:每个Mapper里面都有一些方法(增晒改查).维护起来的话还好.只是在写service的时候会有一个问题.比如UserMapper里面有 insert(User user) , f

我们一起写个智能管家(三)读取配置文件

项目托管地址(详细代码)https://code.csdn.net/youqi1shi/guanjia 软件运行过程中都会有一些配置信息,像端口啦,服务器地址啦,输入输出设备啦,都是需要加载和配置的.所以,如何进行操作呢? 之前自己开发的时候,采用的是INI格式的配置文件,用的是Windows的库函数进行操作,操作倒是方便,但是离开Windows环境就不能用了,很是为难. 网络上有很多Json和Xml的解析库,用这两种文件做存储也是很方便的,但是总觉得大材小用~其实从文件中读取文件信息的操作很基

java 读取配置文件

java.util.Properties是对properties这类配置文件的映射.支持key-value类型和xml类型两种. key-value类型的配置文件大略长这样: 复制代码 #测试环境配置:平台路径配置 jstrd_home=D:/TMS2006/webapp/tms2006/WEB-INF/ dbPort = localhost databaseName = myd dbUserName = root 复制代码 #打头的是注释行,Properties会忽略注释.允许只有key没有v

spring boot 读取配置文件(application.yml)中的属性值111

在spring boot中,简单几步,读取配置文件(application.yml)中各种不同类型的属性值: 1.引入依赖: [html] view plain copy <!-- 支持 @ConfigurationProperties 注解 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-proc