最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java讓泛型實例化的方法

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

泛型對象可以實例化嗎?

不可以,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)文章

  • SpringBoot找不到映射文件的處理方式

    SpringBoot找不到映射文件的處理方式

    這篇文章主要介紹了SpringBoot找不到映射文件的處理方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Java內(nèi)部排序之插入排序與交換排序詳解

    Java內(nèi)部排序之插入排序與交換排序詳解

    這篇文章主要介紹了Java內(nèi)部排序之插入排序與交換排序詳解,排序是將任意序列重新排列按照關(guān)鍵字有序,排序根基存儲器的不同分為內(nèi)部排序、外部排序,排序根據(jù)關(guān)鍵字分為穩(wěn)定排序、不穩(wěn)定排序,需要的朋友可以參考下
    2023-12-12
  • Java中本地緩存的4種實現(xiàn)方式總結(jié)

    Java中本地緩存的4種實現(xiàn)方式總結(jié)

    這篇文章主要介紹了Java中本地緩存的4種實現(xiàn)方式,分別是基礎(chǔ)緩存實現(xiàn)、GuavaLoadingCache、SpringBoot整合Caffeine和JetCache,通過實例代碼,詳細講解了每種緩存技術(shù)的特點和使用方法,需要的朋友可以參考下
    2025-04-04
  • Java基礎(chǔ)學(xué)習(xí)之標(biāo)簽

    Java基礎(chǔ)學(xué)習(xí)之標(biāo)簽

    在Java中,標(biāo)簽必須在循環(huán)之前使用, 一個循環(huán)之中嵌套另一個循環(huán)的開關(guān),從多重嵌套中continue或break,該文詳細介紹了標(biāo)簽的相關(guān)知識,對正在學(xué)習(xí)java基礎(chǔ)的小伙伴們還很有幫助,需要的朋友可以參考下
    2021-05-05
  • MyBatis-Flex 邏輯刪除的用法小結(jié)

    MyBatis-Flex 邏輯刪除的用法小結(jié)

    本文主要介紹了MyBatis-Flex 邏輯刪除的用法小結(jié),主要介紹了@Column注解使用及UpdateChain工具類介紹,具有一定的參考價值,感興趣的可以了解一下
    2025-02-02
  • 詳解Java修飾符

    詳解Java修飾符

    Java語言提供了很多修飾符,主要分為以下兩類:訪問修飾符;非訪問修飾符。修飾符用來定義類、方法或者變量,通常放在語句的最前端。我們通過下面的例子來說明,下面就跟小編一起來看下吧
    2016-12-12
  • Flutter實現(xiàn)文本組件、圖標(biāo)及按鈕組件的代碼

    Flutter實現(xiàn)文本組件、圖標(biāo)及按鈕組件的代碼

    這篇文章主要介紹了Flutter實現(xiàn)文本組件、圖標(biāo)及按鈕組件的代碼,本文給大家介紹的非常詳細,具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2019-07-07
  • Java實現(xiàn)將數(shù)組的元素用逗號連接的多種方法

    Java實現(xiàn)將數(shù)組的元素用逗號連接的多種方法

    在 Java 開發(fā)中,我們經(jīng)常需要將數(shù)組中的元素用逗號連接成一個字符串,這種需求在日志記錄、數(shù)據(jù)導(dǎo)出、API 響應(yīng)等場景中非常常見,本文將詳細介紹如何在 Java 中實現(xiàn)這一功能,并提供多種簡潔的方法和優(yōu)化建議,需要的朋友可以參考下
    2025-01-01
  • hibernate4快速入門實例詳解

    hibernate4快速入門實例詳解

    Hibernate是一個輕量級的ORMapping框架,本文重點給大家介紹hibernate4 入門實例詳細,需要的朋友參考下吧
    2017-09-09
  • spring+maven實現(xiàn)郵件發(fā)送

    spring+maven實現(xiàn)郵件發(fā)送

    這篇文章主要為大家詳細介紹了spring+maven實現(xiàn)郵件發(fā)送,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07

最新評論

商河县| 宜兰市| 罗山县| 汉中市| 武平县| 瓦房店市| 韶关市| 英德市| 阳谷县| 广南县| 敦煌市| 伊春市| 延吉市| 芜湖市| 乌兰浩特市| 万荣县| 岳西县| 福泉市| 安顺市| 丰城市| 日喀则市| 乌兰察布市| 灵宝市| 黄山市| 门源| 温州市| 巴楚县| 嘉定区| 汝南县| 徐汇区| 葵青区| 六安市| 连江县| 即墨市| 惠来县| 尼木县| 海口市| 五指山市| 广南县| 和硕县| 丹巴县|