欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java讓泛型實例化的方法

 更新時間:2020年07月13日 09:41:51   作者:夜空中最亮的蓋子  
這篇文章主要介紹了Java讓泛型實例化的方法,文中示例代碼非常詳細,幫助大家更好的理解和學習,感興趣的朋友可以了解下

泛型對象可以實例化嗎?

不可以,T t=new T()是不可以的,編譯器會報錯。由于泛型擦除,編譯器在編譯時無法確定泛型所對應(yīng)的真實類型

解決方法

使用反射新建實例

Type superclass = getClass().getGenericSuperclass();
ParameterizedType parameterizedType = null;
if (superclass instanceof ParameterizedType) {
  parameterizedType = (ParameterizedType) superclass;
  Type[] typeArray = parameterizedType.getActualTypeArguments();
  if (typeArray != null && typeArray.length > 0) {
   clazz = (Class<T>) typeArray[0];
        
  }
}

執(zhí)行結(jié)果

控制臺輸出

完整代碼

package com.learn.genericinstance;


import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;

public class GenericInstanceLearn {
  public static void main(String[] args) throws InstantiationException, IllegalAccessException {
    UserDao userDao = new UserDao();
    System.out.println(userDao.toString());
  }
}


class Dao<T> {
  public Class<T> clazz;
  public T user;
  public Dao() throws IllegalAccessException, InstantiationException {
    Type superclass = getClass().getGenericSuperclass();
    ParameterizedType parameterizedType = null;
    if (superclass instanceof ParameterizedType) {
      parameterizedType = (ParameterizedType) superclass;
      Type[] typeArray = parameterizedType.getActualTypeArguments();
      if (typeArray != null && typeArray.length > 0) {
        clazz = (Class<T>) typeArray[0];
        user= clazz.newInstance();
      }
    }
  }

  @Override
  public String toString() {
    return "Dao{" +
        "user=" + user.toString() +
        '}';
  }
}

class UserDao extends Dao<User> {

  public UserDao() throws IllegalAccessException, InstantiationException {
  }

  @Override
  public String toString() {
    return super.toString();
  }
}

class User {
  String name;

  public User() {
    this.name = "default name";
  }

  @Override
  public String toString() {
    return "User{" +
        "name='" + name + '\'' +
        '}';
  }
}

以上就是Java讓泛型實例化的方法的詳細內(nèi)容,更多關(guān)于Java泛型實例化的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 詳解Java LinkedHashMap與HashMap的使用

    詳解Java LinkedHashMap與HashMap的使用

    這篇文章主要通過幾個示例為大家詳細介紹了Java中LinkedHashMap與HashMap的常見使用和概述,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2022-10-10
  • Java使用責任鏈模式處理學生請假問題詳解

    Java使用責任鏈模式處理學生請假問題詳解

    這篇文章主要介紹了Java使用責任鏈模式處理學生請假問題,結(jié)合實例形式詳細分析了責任鏈模式的概念、原理及Java使用責任鏈模式處理學生請假問題的相關(guān)步驟、操作技巧與相關(guān)注意事項,需要的朋友可以參考下
    2018-04-04
  • Springboot+hibernate實現(xiàn)簡單的增刪改查示例

    Springboot+hibernate實現(xiàn)簡單的增刪改查示例

    今天小編就為大家分享一篇Springboot+hibernate實現(xiàn)簡單的增刪改查示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • java微信開發(fā)第二步 獲取消息和回復(fù)消息

    java微信開發(fā)第二步 獲取消息和回復(fù)消息

    這篇文章主要為大家分享java微信開發(fā)的第二步,如何獲取消息和回復(fù)消息,感興趣的小伙伴們可以參考一下
    2016-05-05
  • spring cloud中微服務(wù)之間的調(diào)用以及eureka的自我保護機制詳解

    spring cloud中微服務(wù)之間的調(diào)用以及eureka的自我保護機制詳解

    這篇文章主要介紹了spring cloud中微服務(wù)之間的調(diào)用以及eureka的自我保護機制詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • Java代理模式實例詳解【靜態(tài)代理與動態(tài)代理】

    Java代理模式實例詳解【靜態(tài)代理與動態(tài)代理】

    這篇文章主要介紹了Java代理模式,結(jié)合實例形式詳細分析了java靜態(tài)代理與動態(tài)代理模式相關(guān)概念、原理、操作技巧與注意事項,需要的朋友可以參考下
    2019-09-09
  • SpringBoot可以同時處理多少請求流程分析

    SpringBoot可以同時處理多少請求流程分析

    SpringBoot默認的內(nèi)嵌容器是Tomcat,也就是我們的程序?qū)嶋H上是運行在Tomcat里的,所以與其說SpringBoot可以處理多少請求,到不如說Tomcat可以處理多少請求,這篇文章主要介紹了SpringBoot可以同時處理多少請求,需要的朋友可以參考下
    2023-02-02
  • Spring中@Primary注解的作用詳解

    Spring中@Primary注解的作用詳解

    這篇文章主要介紹了Spring中@Primary注解的作用詳解,@Primary 注解是Spring框架中的一個注解,用于標識一個Bean作為默認的實現(xiàn)類,當存在多個實現(xiàn)類時,通過使用@Primary注解,可以指定其中一個作為默認的實現(xiàn)類,以便在注入時自動選擇該實現(xiàn)類,需要的朋友可以參考下
    2023-10-10
  • 解決idea2020.2遇到pom.xml文件報錯maven插件tomcat7的問題

    解決idea2020.2遇到pom.xml文件報錯maven插件tomcat7的問題

    這篇文章主要介紹了idea2020.2遇到pom.xml文件報錯maven插件tomcat7的問題,本文給大家分享解決方法,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • 一文帶你了解Spring中存入Bean和獲取Bean的方式

    一文帶你了解Spring中存入Bean和獲取Bean的方式

    這篇文章主要帶大家了解Spring中存入Bean和獲取Bean的方式,文中的代碼示例講解的非常詳細,對我們的學習或工作有一定的幫助,需要的朋友可以參考下
    2023-07-07

最新評論