TYPE type details in Java, interview Ali p7 post

Harmonios Learning 2021-11-25 19:22:41
type type details java interview

  • getOwnerType(): Type

RetourParameterizedTypeDe la classe dans laquelle se trouve le typeType.Par exemple:Map.Entry<String, Object>Ce type paramétré renvoie quelque choseMap(Parce queMap.EntryLa classe de ce type estMap)Type de.

  • getActualTypeArguments(): Type[]

La méthode renvoie le type paramétré<>Type de paramètre réel dans, Par exemple: Map<String,Person> map C'est ParameterizedType Retour à String Catégorie,Person Nom de classe entièrement qualifié de la classe Type Array.Attention!: Cette méthode ne renvoie que la couche externe<>Type dans,Peu importe.<>Combien de<>.

Voici un exemple d'utilisation spécifique:

//- Oui.ParameterizedType
private HashMap<String, Object> map;
private HashSet<String> set;
private List<String> list;
private Class<?> clz;

//Non, pas du tout.ParameterizedType
private Integer i;
private String str;

private static void printParameterizedType(){
Field[] fields = TestParameterizedTypeBean.class.getDeclaredFields();
for (Field f : fields){
//L'impression est - elleParameterizedTypeType
System.out.println("FieldName: " + f.getName() + " instanceof ParameterizedType is : " +
(f.getGenericType() instanceof ParameterizedType));
}
//Prends - le.mapTableau des types d'arguments réels dans ce type
getParameterizedTypeWithName(“map”);
getParameterizedTypeWithName(“str”);
}

private static void getParameterizedTypeWithName(String name){
Field f;
try {
//En utilisant la réflexionTestParameterizedTypeBeanToutes les variables de la classe
f = TestParameterizedTypeBean.class.getDeclaredField(name);
f.setAccessible(true);
Type type = f.getGenericType();
if (type instanceof ParameterizedType){
for(Type param : ((ParameterizedType)type).getActualTypeArguments()){
//Imprimer le type de paramètre réel
System.out.println(“—type actualType—” + param.toString());
}
//Type de la classe mère dans laquelle l'impression se trouve
System.out.println(“—type ownerType0—”+ ((ParameterizedType) type).getOwnerType());
//Imprimer son propre type
System.out.println(“—type rawType—”+ ((ParameterizedType) type).getRawType());
}
} catch (NoSuchFieldException e) {
e.printStackTrace();
}
}

Le code ci - dessus définit principalement certaines variables,Parmi ces variables, il y aParameterizedTypeIl existe également des variables de type commun,Regardons la sortie du code ci - dessus:

JavaDansTypeDétails du type,Interview AliP7Poste_Développement de l'arrière - plan

  • TypeVariable:Variable de type

L'information type est convertie en un type spécifique au moment de la compilation, EtTypeVariableEst utilisé pour refléterJVMInformations avant la compilation du générique.(En termes simples,TypeVariableC'est ce que nous utilisonsT,KCette variable générique)

  • getBounds(): Type[]:

Renvoie la limite supérieure du type actuel,Si aucune limite supérieure n'est spécifiée,Par défautObject.

  • getName(): String:

Renvoie le nom de classe du type actuel

  • getGenericDeclaration(): D

Renvoie la classe du type courantType.

Voici un exemple pour approfondir la compréhension:

public class

《Grandes usines de première ligneJavaAnalyse des questions d'entrevue+Notes d'apprentissage pour le développement de l'arrière - plan+La dernière vidéo d'architecture+Document d'information sur le code source du projet en direct》

【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 Partage open source du contenu complet

TestTypeVariableBean<K extends Number, T> {

//KIl y a une limite supérieure spécifiéeNumber
K key;
//TAucune limite supérieure spécifiée,Sa limite supérieure par défaut estObject
T value;

public static void main(String[] args){
Type[] types = TestTypeVariableBean.class.getTypeParameters();
for (Type type : types){
TypeVariable t = (TypeVariable) type;
int index = t.getBounds().length - 1;
//Limite supérieure de sortie
System.out.println(“–getBounds()-- " + t.getBounds()[index]);
//Nom de sortie
System.out.println(”–getName()–" + t.getName());
//Type de classe dans laquelle la sortie est située
System.out.println(“–getGenericDeclaration()–” + t.getGenericDeclaration());
}
}
}

Revenons à la sortie:

JavaDansTypeDétails du type,Interview AliP7Poste_Interview_02

  • GenericArrayType:Type de tableau générique:

L'interface est implémentée par des génériques dans les éléments qui composent le tableau; Ses éléments constitutifs sont ParameterizedType Ou TypeVariable Type.(En termes simples,Est un tableau de types de paramètres.Si ce n'est que des types paramétriques,Ne peut pas être appelé un tableau générique,C'est un type paramétrique).Attention!:Peu importe combien de gauche à droite[]Côte à côte,Cette méthode n'enlève que l'extrême droite[]Le reste est ensuite utilisé comme valeur de retour pour cette méthode.

  • getGenericComponentType(): Type:

Renvoie le type paramétré réel qui constitue le tableau générique,Par exemple:List[] Renvoie List.

Voici encore un exemple pour en savoir plus:

public class TestGenericArrayTypeBean<T> {

//Type de tableau générique
private T[] value;
private List<String>[] list;

//Pas un type de tableau générique
private List<String> singleList;
private T singleValue;

public static void main(String[] args){
Field[] fields = TestGenericArrayTypeBean.class.getDeclaredFields();
for (Field field: fields){
field.setAccessible(true);
//La variable courante de sortie estGenericArrayTypeType
System.out.println("Field: "

  • field.getName()
  • “; instanceof GenericArrayType”
  • ": "
  • (field.getGenericType() instanceof GenericArrayType));
    if (field.getGenericType() instanceof GenericArrayType){
    //Si ouiGenericArrayType,Affiche le type générique actuel
    System.out.println("Field: "
  • field.getName()
  • “; getGenericComponentType()”
  • ": "
  • (((GenericArrayType) field.getGenericType()).getGenericComponentType()));
    }
    }
    }
    }

Ensuite, regardez la sortie:

JavaDansTypeDétails du type,Interview AliP7Poste_Java_03

  • WildcardType: Type de Joker

Enfin

Beaucoup de programmeurs,Immergé dans le Code d'entreprise toute la journée CRUD Moyenne,Il n'y a pas beaucoup de données simultanées dans l'entreprise,Manque d'expérience pratique,Rester dans la compréhension de la concurrence,Je ne peux pas le maîtriser.,Donc je passe toujours devant la grande usine..

J'ai partagé des notes privées et des cartes mentales de ce système simultané.,Combinaison des connaissances théoriques et de la pratique du projet,J'ai l'impression que si tu prends le temps d'en finir avec ça.,La programmation simultanée doit être maîtrisée rapidement.

Qu'il s'agisse de combler les lacunes ou d'approfondir l'apprentissage, il peut être très efficace.,Si tu as besoin d'un coup de main, fais - le.

Difficile à organiser,Les amis qui pensent qu'il est utile de partager un peu d'aide et de soutien~

Cet article a été publié par CODINGProjet Open Source:【Grandes usines de première ligneJavaAnalyse des questions d'entrevue+Résumé de base notes d'étude+Dernière vidéo d'explication+Code source du projet opérationnel】Inclus

版权声明
本文为[Harmonios Learning]所创,转载请带上原文链接,感谢
https://javamana.com/2021/11/20211125191813943Y.html

  1. Fonction de flèche JavaScript
  2. JavaScript - déconstruction assignations
  3. Building CentOS 7.6 with Linux
  4. JavaScript - type d'emballage
  5. linux deepin/ubuntu安装flameshot火焰截图
  6. JavaScript - encapsulation et héritage (deux)
  7. JavaScript JS method for writing 99 multiplication table
  8. 從零開始學java - 第二十五天
  9. Apprendre Java à partir de zéro - jour 25
  10. Les voitures d'hiver, les voitures électriques et les voitures à essence ne sont pas les mêmes?
  11. JavaScript - ceci pointe vers le problème
  12. Copie JavaScript
  13. Spring boot quickly integrates swagger
  14. linux deepin/ubuntu安裝flameshot火焰截圖
  15. Capture d'écran de flamme de l'installateur de flamme Linux deepin / Ubuntu
  16. Jquery DOM et jquery, fonctions d'entrée (bases)
  17. Méthode d'instance jquery
  18. Méthode et démonstration de code dans l'interface de liste en Java
  19. 【错误记录】Java 中 ArrayList 排序 ( 使用 Comparator 接口时注意 compare 返回值是 -1 和 +1 )
  20. Démarrage du Zookeeper
  21. Java oom Cognition
  22. Java 开发者最困惑的四件事,值得一看!,BAT面试文档
  23. Java 将两个对象list里面的 某个字段值抽取到一个list里,java选择排序原理
  24. Java 多线程 —— 生产者消费者问题,从基础到深入案例
  25. Java 中设计模式 之 工厂模式,java反射机制的底层原理
  26. 【錯誤記錄】Java 中 ArrayList 排序 ( 使用 Comparator 接口時注意 compare 返回值是 -1 和 +1 )
  27. 【 enregistrement des erreurs 】 tri ArrayList en Java (Notez que les valeurs de retour de comparaison sont - 1 et + 1 lors de l'utilisation de l'interface de comparaison)
  28. Pourquoi Xiaopeng P5 est - il devenu un grand succès dans le cercle? Le Salon de l'automobile de Guangzhou montre encore des compétences polyvalentes
  29. Java 開發者最困惑的四件事,值得一看!,BAT面試文檔
  30. Les quatre choses les plus déroutantes pour les développeurs Java valent la peine d'être regardées! Document d'entrevue sur les MTD
  31. k8s-Pod污点与容忍
  32. k8s-Pod污点与容忍
  33. K8s POD Contamination and Tolerance
  34. K8s POD Contamination and Tolerance
  35. mysql常用语句——GROUP BY和HAVING
  36. Spring boot quickly integrates swagger
  37. mysql常用語句——GROUP BY和HAVING
  38. MySQL Common statements - group by and having
  39. Le défi du pinceau leetcode - Javascript: 110. Arbre binaire équilibré
  40. [notes d'apprentissage de première ligne] day44: XMLHttpRequest
  41. java调用RFC延长调用时间
  42. java調用RFC延長調用時間
  43. Java call RFC prolonge le temps d'appel
  44. Le modèle d'usine du modèle de conception en Java, le principe sous - jacent du mécanisme de réflexion Java
  45. Java Multithreading - producer Consumer issues, From Basic to Deep case
  46. OushuDB 安装与升级之安装 HDFS
  47. OushuDB 安装与升级之安装 Zookeeper
  48. Java-String-对象,你真的了解了吗?,mysql教程入门到精通
  49. Linux引导过程与服务控制
  50. Java-8新特性:学习如何使用Lambda表达式(一,线程池的实现原理
  51. Java 读写锁 ReentrantReadWriteLock 源码分析,headfirstjavapdf百度云
  52. JAVA 获取系统日期时间,初级java开发常见的面试题
  53. MySQL judges the salary changes based on the existing data
  54. k8s-Pod污點與容忍
  55. Java extrait une valeur de champ de deux listes d'objets dans une liste, et Java sélectionne le principe de tri
  56. java中ArrayList应用实例,阿里巴巴java面试流程
  57. Java个人技术知识点总结(框架篇),kafka聊天服务器架构
  58. JavaWeb快速入门--Servlet(2),java程序设计精编教程第三版上机实践
  59. JavaWeb - 文件的上传,核心API的使用,文件下载,附学习笔记 面试整理 进阶书籍
  60. Netty原理:pipeline