java 各類型轉換 convert


1、Object TO List<?>

  java中如果需要將一個object轉成list,大部分人會直接使用強制類型轉換:(List<String>) obj這樣。這樣強制轉換編譯會提示Unchecked cast: 'java.lang.Object' to 'java.util.List<java.lang.String>',編譯器的意思該強制類型轉換並未做類型校驗,強制轉換並不安全,可能會拋出異常導致程序崩潰。在很多博客中有人會建議用@SuppressWarnings("unchecked")解決編譯器警告,這種方法是極為不妥的,因為它只是用來告訴編譯器忽略警告,而警告卻實實在在的存在。

 這里提供一種公共方法如下:

public static <T> List<T> castList(Object obj, Class<T> clazz) {
    List<T> result = new ArrayList<T>();
    if(obj instanceof List<?>) {
        for (Object o : (List<?>) obj) {
            result.add(clazz.cast(o));
        }
        return result;
    }
    return null;
}

2、Object TO Map

  可以使用 jackson 來進行轉換

  首先 pom 中引入對應的包

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.6.3</version>
</dependency>

  直接上測試案例:

import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.Arrays;
import java.util.Map;

public class ObjectToMapExample {

    public static void main(String[] args) {

        ObjectMapper oMapper = new ObjectMapper();

        Student obj = new Student();
        obj.setName("mkyong");
        obj.setAge(34);
        obj.setSkills(Arrays.asList("java","node"));

        // object -> Map
        Map<String, Object> map = oMapper.convertValue(obj, Map.class);
        System.out.println(map);
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM