Java泛型用法总结

普通泛型

<span class="kwd"><span class="kwd">class<span class="pln"><span class="pln"> <span class="typ"><span class="typ">Point<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> T<span class="pun"><span class="pun">>{<span class="pln"><span class="pln">  <span class="com"><span class="com">// &#x6B64;&#x5904;&#x53EF;&#x4EE5;&#x968F;&#x4FBF;&#x5199;&#x6807;&#x8BC6;&#x7B26;&#x53F7;&#xFF0C;T&#x662F;type&#x7684;&#x7B80;&#x79F0;  <span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">private<span class="pln"><span class="pln"> T <span class="kwd"><span class="kwd">var<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln"> <span class="com"><span class="com">// var&#x7684;&#x7C7B;&#x578B;&#x7531;T&#x6307;&#x5B9A;&#xFF0C;&#x5373;&#xFF1A;&#x7531;&#x5916;&#x90E8;&#x6307;&#x5B9A;  <span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> T getVar<span class="pun"><span class="pun">(){<span class="pln"><span class="pln"> <span class="com"><span class="com">// &#x8FD4;&#x56DE;&#x503C;&#x7684;&#x7C7B;&#x578B;&#x7531;&#x5916;&#x90E8;&#x51B3;&#x5B9A;  <span class="pln"><span class="pln">
  <span class="kwd"><span class="kwd">return<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">var<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">void<span class="pln"><span class="pln"> setVar<span class="pun"><span class="pun">(<span class="pln"><span class="pln">T <span class="kwd"><span class="kwd">var<span class="pun"><span class="pun">){<span class="pln"><span class="pln"> <span class="com"><span class="com">// &#x8BBE;&#x7F6E;&#x7684;&#x7C7B;&#x578B;&#x4E5F;&#x7531;&#x5916;&#x90E8;&#x51B3;&#x5B9A;  <span class="pln"><span class="pln">
  <span class="kwd"><span class="kwd">this<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">var<span class="pln"><span class="pln"> <span class="pun"><span class="pun">=<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">var<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
<span class="pun"><span class="pun">};<span class="pln"><span class="pln">
<span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">class<span class="pln"><span class="pln"> <span class="typ"><span class="typ">GenericsDemo06<span class="pun"><span class="pun">{<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">static<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">void<span class="pln"><span class="pln"> main<span class="pun"><span class="pun">(<span class="typ"><span class="typ">String<span class="pln"><span class="pln"> args<span class="pun"><span class="pun">[]){<span class="pln"><span class="pln">
  <span class="typ"><span class="typ">Point<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> <span class="typ"><span class="typ">String<span class="pun"><span class="pun">><span class="pln"><span class="pln"> p <span class="pun"><span class="pun">=<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">new<span class="pln"><span class="pln"> <span class="typ"><span class="typ">Point<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> <span class="typ"><span class="typ">String<span class="pun"><span class="pun">>()<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln"> <span class="com"><span class="com">// &#x91CC;&#x9762;&#x7684;var&#x7C7B;&#x578B;&#x4E3A;String&#x7C7B;&#x578B;  <span class="pln"><span class="pln">
  p<span class="pun"><span class="pun">.<span class="pln"><span class="pln">setVar<span class="pun"><span class="pun">(<span class="str"><span class="str">"it"<span class="pun"><span class="pun">)<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">  <span class="com"><span class="com">// &#x8BBE;&#x7F6E;&#x5B57;&#x7B26;&#x4E32;  <span class="pln"><span class="pln">
  <span class="typ"><span class="typ">System<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">out<span class="pun"><span class="pun">.<span class="pln"><span class="pln">println<span class="pun"><span class="pun">(<span class="pln"><span class="pln">p<span class="pun"><span class="pun">.<span class="pln"><span class="pln">getVar<span class="pun"><span class="pun">().<span class="pln"><span class="pln">length<span class="pun"><span class="pun">())<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln"> <span class="com"><span class="com">// &#x53D6;&#x5F97;&#x5B57;&#x7B26;&#x4E32;&#x7684;&#x957F;&#x5EA6;  <span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
<span class="pun"><span class="pun">};</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>
<span class="kwd"><span class="kwd">class<span class="pln"><span class="pln"> <span class="typ"><span class="typ">Notepad<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> K<span class="pun"><span class="pun">,<span class="pln"><span class="pln">V<span class="pun"><span class="pun">>{<span class="pln"><span class="pln">  <span class="com"><span class="com">// &#x6B64;&#x5904;&#x6307;&#x5B9A;&#x4E86;&#x4E24;&#x4E2A;&#x6CDB;&#x578B;&#x7C7B;&#x578B;  <span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">private<span class="pln"><span class="pln"> K key <span class="pun"><span class="pun">;<span class="pln"><span class="pln">  <span class="com"><span class="com">// &#x6B64;&#x53D8;&#x91CF;&#x7684;&#x7C7B;&#x578B;&#x7531;&#x5916;&#x90E8;&#x51B3;&#x5B9A;  <span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">private<span class="pln"><span class="pln"> V value <span class="pun"><span class="pun">;<span class="pln"><span class="pln"> <span class="com"><span class="com">// &#x6B64;&#x53D8;&#x91CF;&#x7684;&#x7C7B;&#x578B;&#x7531;&#x5916;&#x90E8;&#x51B3;&#x5B9A;  <span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> K getKey<span class="pun"><span class="pun">(){<span class="pln"><span class="pln">
  <span class="kwd"><span class="kwd">return<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">this<span class="pun"><span class="pun">.<span class="pln"><span class="pln">key <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> V getValue<span class="pun"><span class="pun">(){<span class="pln"><span class="pln">
  <span class="kwd"><span class="kwd">return<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">this<span class="pun"><span class="pun">.<span class="pln"><span class="pln">value <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">void<span class="pln"><span class="pln"> setKey<span class="pun"><span class="pun">(<span class="pln"><span class="pln">K key<span class="pun"><span class="pun">){<span class="pln"><span class="pln">
  <span class="kwd"><span class="kwd">this<span class="pun"><span class="pun">.<span class="pln"><span class="pln">key <span class="pun"><span class="pun">=<span class="pln"><span class="pln"> key <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">void<span class="pln"><span class="pln"> setValue<span class="pun"><span class="pun">(<span class="pln"><span class="pln">V value<span class="pun"><span class="pun">){<span class="pln"><span class="pln">
  <span class="kwd"><span class="kwd">this<span class="pun"><span class="pun">.<span class="pln"><span class="pln">value <span class="pun"><span class="pun">=<span class="pln"><span class="pln"> value <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
<span class="pun"><span class="pun">};<span class="pln"><span class="pln">
<span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">class<span class="pln"><span class="pln"> <span class="typ"><span class="typ">GenericsDemo09<span class="pun"><span class="pun">{<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">static<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">void<span class="pln"><span class="pln"> main<span class="pun"><span class="pun">(<span class="typ"><span class="typ">String<span class="pln"><span class="pln"> args<span class="pun"><span class="pun">[]){<span class="pln"><span class="pln">
  <span class="typ"><span class="typ">Notepad<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> <span class="typ"><span class="typ">String<span class="pun"><span class="pun">,<span class="typ"><span class="typ">Integer<span class="pun"><span class="pun">><span class="pln"><span class="pln"> t <span class="pun"><span class="pun">=<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">null<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">  <span class="com"><span class="com">// &#x5B9A;&#x4E49;&#x4E24;&#x4E2A;&#x6CDB;&#x578B;&#x7C7B;&#x578B;&#x7684;&#x5BF9;&#x8C61;  <span class="pln"><span class="pln">
  t <span class="pun"><span class="pun">=<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">new<span class="pln"><span class="pln"> <span class="typ"><span class="typ">Notepad<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> <span class="typ"><span class="typ">String<span class="pun"><span class="pun">,<span class="typ"><span class="typ">Integer<span class="pun"><span class="pun">>()<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">  <span class="com"><span class="com">// &#x91CC;&#x9762;&#x7684;key&#x4E3A;String&#xFF0C;value&#x4E3A;Integer  <span class="pln"><span class="pln">
  t<span class="pun"><span class="pun">.<span class="pln"><span class="pln">setKey<span class="pun"><span class="pun">(<span class="str"><span class="str">"&#x6C64;&#x59C6;"<span class="pun"><span class="pun">)<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">  <span class="com"><span class="com">// &#x8BBE;&#x7F6E;&#x7B2C;&#x4E00;&#x4E2A;&#x5185;&#x5BB9;  <span class="pln"><span class="pln">
  t<span class="pun"><span class="pun">.<span class="pln"><span class="pln">setValue<span class="pun"><span class="pun">(<span class="lit"><span class="lit">20<span class="pun"><span class="pun">)<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">   <span class="com"><span class="com">// &#x8BBE;&#x7F6E;&#x7B2C;&#x4E8C;&#x4E2A;&#x5185;&#x5BB9;  <span class="pln"><span class="pln">
  <span class="typ"><span class="typ">System<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">out<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">print<span class="pun"><span class="pun">(<span class="str"><span class="str">"&#x59D3;&#x540D;&#xFF1B;"<span class="pln"><span class="pln"> <span class="pun"><span class="pun">+<span class="pln"><span class="pln"> t<span class="pun"><span class="pun">.<span class="pln"><span class="pln">getKey<span class="pun"><span class="pun">())<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">  <span class="com"><span class="com">// &#x53D6;&#x5F97;&#x4FE1;&#x606F;  <span class="pln"><span class="pln">
  <span class="typ"><span class="typ">System<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">out<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">print<span class="pun"><span class="pun">(<span class="str"><span class="str">"&#xFF0C;&#x5E74;&#x9F84;&#xFF1B;"<span class="pln"><span class="pln"> <span class="pun"><span class="pun">+<span class="pln"><span class="pln"> t<span class="pun"><span class="pun">.<span class="pln"><span class="pln">getValue<span class="pun"><span class="pun">())<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">  <span class="com"><span class="com">// &#x53D6;&#x5F97;&#x4FE1;&#x606F;  <span class="pln"><span class="pln">

 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
<span class="pun"><span class="pun">};</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>

通配符

<span class="kwd"><span class="kwd">class<span class="pln"><span class="pln"> <span class="typ"><span class="typ">Info<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> T<span class="pun"><span class="pun">>{<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">private<span class="pln"><span class="pln"> T <span class="kwd"><span class="kwd">var<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">  <span class="com"><span class="com">// &#x5B9A;&#x4E49;&#x6CDB;&#x578B;&#x53D8;&#x91CF;  <span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">void<span class="pln"><span class="pln"> setVar<span class="pun"><span class="pun">(<span class="pln"><span class="pln">T <span class="kwd"><span class="kwd">var<span class="pun"><span class="pun">){<span class="pln"><span class="pln">
  <span class="kwd"><span class="kwd">this<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">var<span class="pln"><span class="pln"> <span class="pun"><span class="pun">=<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">var<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> T getVar<span class="pun"><span class="pun">(){<span class="pln"><span class="pln">
  <span class="kwd"><span class="kwd">return<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">this<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">var<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="typ"><span class="typ">String<span class="pln"><span class="pln"> toString<span class="pun"><span class="pun">(){<span class="pln"><span class="pln"> <span class="com"><span class="com">// &#x76F4;&#x63A5;&#x6253;&#x5370;  <span class="pln"><span class="pln">
  <span class="kwd"><span class="kwd">return<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">this<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">var<span class="pun"><span class="pun">.<span class="pln"><span class="pln">toString<span class="pun"><span class="pun">()<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
<span class="pun"><span class="pun">};<span class="pln"><span class="pln">
<span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">class<span class="pln"><span class="pln"> <span class="typ"><span class="typ">GenericsDemo14<span class="pun"><span class="pun">{<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">static<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">void<span class="pln"><span class="pln"> main<span class="pun"><span class="pun">(<span class="typ"><span class="typ">String<span class="pln"><span class="pln"> args<span class="pun"><span class="pun">[]){<span class="pln"><span class="pln">
  <span class="typ"><span class="typ">Info<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> <span class="typ"><span class="typ">String<span class="pun"><span class="pun">><span class="pln"><span class="pln"> i <span class="pun"><span class="pun">=<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">new<span class="pln"><span class="pln"> <span class="typ"><span class="typ">Info<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> <span class="typ"><span class="typ">String<span class="pun"><span class="pun">>()<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">  <span class="com"><span class="com">// &#x4F7F;&#x7528;String&#x4E3A;&#x6CDB;&#x578B;&#x7C7B;&#x578B;  <span class="pln"><span class="pln">
  i<span class="pun"><span class="pun">.<span class="pln"><span class="pln">setVar<span class="pun"><span class="pun">(<span class="str"><span class="str">"it"<span class="pun"><span class="pun">)<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">       <span class="com"><span class="com">// &#x8BBE;&#x7F6E;&#x5185;&#x5BB9;  <span class="pln"><span class="pln">
  fun<span class="pun"><span class="pun">(<span class="pln"><span class="pln">i<span class="pun"><span class="pun">)<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">static<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">void<span class="pln"><span class="pln"> fun<span class="pun"><span class="pun">(<span class="typ"><span class="typ">Info<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> <span class="pun"><span class="pun">?><span class="pln"><span class="pln"> temp<span class="pun"><span class="pun">){<span class="pln"><span class="pln">  <span class="com"><span class="com">// &#x53EF;&#x4EE5;&#x63A5;&#x6536;&#x4EFB;&#x610F;&#x7684;&#x6CDB;&#x578B;&#x5BF9;&#x8C61;  <span class="pln"><span class="pln">
  <span class="typ"><span class="typ">System<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">out<span class="pun"><span class="pun">.<span class="pln"><span class="pln">println<span class="pun"><span class="pun">(<span class="str"><span class="str">"&#x5185;&#x5BB9;&#xFF1A;"<span class="pln"><span class="pln"> <span class="pun"><span class="pun">+<span class="pln"><span class="pln"> temp<span class="pun"><span class="pun">)<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
<span class="pun"><span class="pun">};</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>

受限泛型

<span class="kwd"><span class="kwd">class<span class="pln"><span class="pln"> <span class="typ"><span class="typ">Info<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> T<span class="pun"><span class="pun">>{<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">private<span class="pln"><span class="pln"> T <span class="kwd"><span class="kwd">var<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">  <span class="com"><span class="com">// &#x5B9A;&#x4E49;&#x6CDB;&#x578B;&#x53D8;&#x91CF;  <span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">void<span class="pln"><span class="pln"> setVar<span class="pun"><span class="pun">(<span class="pln"><span class="pln">T <span class="kwd"><span class="kwd">var<span class="pun"><span class="pun">){<span class="pln"><span class="pln">
  <span class="kwd"><span class="kwd">this<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">var<span class="pln"><span class="pln"> <span class="pun"><span class="pun">=<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">var<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> T getVar<span class="pun"><span class="pun">(){<span class="pln"><span class="pln">
  <span class="kwd"><span class="kwd">return<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">this<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">var<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="typ"><span class="typ">String<span class="pln"><span class="pln"> toString<span class="pun"><span class="pun">(){<span class="pln"><span class="pln"> <span class="com"><span class="com">// &#x76F4;&#x63A5;&#x6253;&#x5370;  <span class="pln"><span class="pln">
  <span class="kwd"><span class="kwd">return<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">this<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">var<span class="pun"><span class="pun">.<span class="pln"><span class="pln">toString<span class="pun"><span class="pun">()<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
<span class="pun"><span class="pun">};<span class="pln"><span class="pln">
<span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">class<span class="pln"><span class="pln"> <span class="typ"><span class="typ">GenericsDemo17<span class="pun"><span class="pun">{<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">static<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">void<span class="pln"><span class="pln"> main<span class="pun"><span class="pun">(<span class="typ"><span class="typ">String<span class="pln"><span class="pln"> args<span class="pun"><span class="pun">[]){<span class="pln"><span class="pln">
  <span class="typ"><span class="typ">Info<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> <span class="typ"><span class="typ">Integer<span class="pun"><span class="pun">><span class="pln"><span class="pln"> i1 <span class="pun"><span class="pun">=<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">new<span class="pln"><span class="pln"> <span class="typ"><span class="typ">Info<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> <span class="typ"><span class="typ">Integer<span class="pun"><span class="pun">>()<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">  <span class="com"><span class="com">// &#x58F0;&#x660E;Integer&#x7684;&#x6CDB;&#x578B;&#x5BF9;&#x8C61;  <span class="pln"><span class="pln">
  <span class="typ"><span class="typ">Info<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> <span class="typ"><span class="typ">Float<span class="pun"><span class="pun">><span class="pln"><span class="pln"> i2 <span class="pun"><span class="pun">=<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">new<span class="pln"><span class="pln"> <span class="typ"><span class="typ">Info<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> <span class="typ"><span class="typ">Float<span class="pun"><span class="pun">>()<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">   <span class="com"><span class="com">// &#x58F0;&#x660E;Float&#x7684;&#x6CDB;&#x578B;&#x5BF9;&#x8C61;  <span class="pln"><span class="pln">
  i1<span class="pun"><span class="pun">.<span class="pln"><span class="pln">setVar<span class="pun"><span class="pun">(<span class="lit"><span class="lit">30<span class="pun"><span class="pun">)<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">         <span class="com"><span class="com">// &#x8BBE;&#x7F6E;&#x6574;&#x6570;&#xFF0C;&#x81EA;&#x52A8;&#x88C5;&#x7BB1;  <span class="pln"><span class="pln">
  i2<span class="pun"><span class="pun">.<span class="pln"><span class="pln">setVar<span class="pun"><span class="pun">(<span class="lit"><span class="lit">30.1f<span class="pun"><span class="pun">)<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">        <span class="com"><span class="com">// &#x8BBE;&#x7F6E;&#x5C0F;&#x6570;&#xFF0C;&#x81EA;&#x52A8;&#x88C5;&#x7BB1;  <span class="pln"><span class="pln">
  fun<span class="pun"><span class="pun">(<span class="pln"><span class="pln">i1<span class="pun"><span class="pun">)<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
  fun<span class="pun"><span class="pun">(<span class="pln"><span class="pln">i2<span class="pun"><span class="pun">)<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">static<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">void<span class="pln"><span class="pln"> fun<span class="pun"><span class="pun">(<span class="typ"><span class="typ">Info<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> <span class="pun"><span class="pun">?<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">extends<span class="pln"><span class="pln"> <span class="typ"><span class="typ">Number<span class="pun"><span class="pun">><span class="pln"><span class="pln"> temp<span class="pun"><span class="pun">){<span class="pln"><span class="pln"> <span class="com"><span class="com">// &#x53EA;&#x80FD;&#x63A5;&#x6536;Number&#x53CA;&#x5176;Number&#x7684;&#x5B50;&#x7C7B;  <span class="pln"><span class="pln">
  <span class="typ"><span class="typ">System<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">out<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">print<span class="pun"><span class="pun">(<span class="pln"><span class="pln">temp <span class="pun"><span class="pun">+<span class="pln"><span class="pln"> <span class="str"><span class="str">"&#x3001;"<span class="pun"><span class="pun">)<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
<span class="pun"><span class="pun">};</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>
<span class="kwd"><span class="kwd">class<span class="pln"><span class="pln"> <span class="typ"><span class="typ">Info<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> T<span class="pun"><span class="pun">>{<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">private<span class="pln"><span class="pln"> T <span class="kwd"><span class="kwd">var<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">  <span class="com"><span class="com">// &#x5B9A;&#x4E49;&#x6CDB;&#x578B;&#x53D8;&#x91CF;  <span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">void<span class="pln"><span class="pln"> setVar<span class="pun"><span class="pun">(<span class="pln"><span class="pln">T <span class="kwd"><span class="kwd">var<span class="pun"><span class="pun">){<span class="pln"><span class="pln">
  <span class="kwd"><span class="kwd">this<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">var<span class="pln"><span class="pln"> <span class="pun"><span class="pun">=<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">var<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> T getVar<span class="pun"><span class="pun">(){<span class="pln"><span class="pln">
  <span class="kwd"><span class="kwd">return<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">this<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">var<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="typ"><span class="typ">String<span class="pln"><span class="pln"> toString<span class="pun"><span class="pun">(){<span class="pln"><span class="pln"> <span class="com"><span class="com">// &#x76F4;&#x63A5;&#x6253;&#x5370;  <span class="pln"><span class="pln">
  <span class="kwd"><span class="kwd">return<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">this<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">var<span class="pun"><span class="pun">.<span class="pln"><span class="pln">toString<span class="pun"><span class="pun">()<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
<span class="pun"><span class="pun">};<span class="pln"><span class="pln">
<span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">class<span class="pln"><span class="pln"> <span class="typ"><span class="typ">GenericsDemo21<span class="pun"><span class="pun">{<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">static<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">void<span class="pln"><span class="pln"> main<span class="pun"><span class="pun">(<span class="typ"><span class="typ">String<span class="pln"><span class="pln"> args<span class="pun"><span class="pun">[]){<span class="pln"><span class="pln">
  <span class="typ"><span class="typ">Info<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> <span class="typ"><span class="typ">String<span class="pun"><span class="pun">><span class="pln"><span class="pln"> i1 <span class="pun"><span class="pun">=<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">new<span class="pln"><span class="pln"> <span class="typ"><span class="typ">Info<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> <span class="typ"><span class="typ">String<span class="pun"><span class="pun">>()<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">  <span class="com"><span class="com">// &#x58F0;&#x660E;String&#x7684;&#x6CDB;&#x578B;&#x5BF9;&#x8C61;  <span class="pln"><span class="pln">
  <span class="typ"><span class="typ">Info<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> <span class="typ"><span class="typ">Object<span class="pun"><span class="pun">><span class="pln"><span class="pln"> i2 <span class="pun"><span class="pun">=<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">new<span class="pln"><span class="pln"> <span class="typ"><span class="typ">Info<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> <span class="typ"><span class="typ">Object<span class="pun"><span class="pun">>()<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">  <span class="com"><span class="com">// &#x58F0;&#x660E;Object&#x7684;&#x6CDB;&#x578B;&#x5BF9;&#x8C61;  <span class="pln"><span class="pln">
  i1<span class="pun"><span class="pun">.<span class="pln"><span class="pln">setVar<span class="pun"><span class="pun">(<span class="str"><span class="str">"hello"<span class="pun"><span class="pun">)<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
  i2<span class="pun"><span class="pun">.<span class="pln"><span class="pln">setVar<span class="pun"><span class="pun">(<span class="kwd"><span class="kwd">new<span class="pln"><span class="pln"> <span class="typ"><span class="typ">Object<span class="pun"><span class="pun">())<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
  fun<span class="pun"><span class="pun">(<span class="pln"><span class="pln">i1<span class="pun"><span class="pun">)<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
  fun<span class="pun"><span class="pun">(<span class="pln"><span class="pln">i2<span class="pun"><span class="pun">)<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">static<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">void<span class="pln"><span class="pln"> fun<span class="pun"><span class="pun">(<span class="typ"><span class="typ">Info<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> <span class="pun"><span class="pun">?<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">super<span class="pln"><span class="pln"> <span class="typ"><span class="typ">String<span class="pun"><span class="pun">><span class="pln"><span class="pln"> temp<span class="pun"><span class="pun">){<span class="pln"><span class="pln"> <span class="com"><span class="com">// &#x53EA;&#x80FD;&#x63A5;&#x6536;String&#x6216;Object&#x7C7B;&#x578B;&#x7684;&#x6CDB;&#x578B;  <span class="pln"><span class="pln">
  <span class="typ"><span class="typ">System<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">out<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">print<span class="pun"><span class="pun">(<span class="pln"><span class="pln">temp <span class="pun"><span class="pun">+<span class="pln"><span class="pln"> <span class="str"><span class="str">"&#x3001;"<span class="pun"><span class="pun">)<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
<span class="pun"><span class="pun">};</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>

Java泛型无法向上转型

<span class="kwd"><span class="kwd">class<span class="pln"><span class="pln"> <span class="typ"><span class="typ">Info<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> T<span class="pun"><span class="pun">>{<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">private<span class="pln"><span class="pln"> T <span class="kwd"><span class="kwd">var<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">  <span class="com"><span class="com">// &#x5B9A;&#x4E49;&#x6CDB;&#x578B;&#x53D8;&#x91CF;  <span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">void<span class="pln"><span class="pln"> setVar<span class="pun"><span class="pun">(<span class="pln"><span class="pln">T <span class="kwd"><span class="kwd">var<span class="pun"><span class="pun">){<span class="pln"><span class="pln">
  <span class="kwd"><span class="kwd">this<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">var<span class="pln"><span class="pln"> <span class="pun"><span class="pun">=<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">var<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> T getVar<span class="pun"><span class="pun">(){<span class="pln"><span class="pln">
  <span class="kwd"><span class="kwd">return<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">this<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">var<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="typ"><span class="typ">String<span class="pln"><span class="pln"> toString<span class="pun"><span class="pun">(){<span class="pln"><span class="pln"> <span class="com"><span class="com">// &#x76F4;&#x63A5;&#x6253;&#x5370;  <span class="pln"><span class="pln">
  <span class="kwd"><span class="kwd">return<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">this<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">var<span class="pun"><span class="pun">.<span class="pln"><span class="pln">toString<span class="pun"><span class="pun">()<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
<span class="pun"><span class="pun">};<span class="pln"><span class="pln">
<span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">class<span class="pln"><span class="pln"> <span class="typ"><span class="typ">GenericsDemo23<span class="pun"><span class="pun">{<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">static<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">void<span class="pln"><span class="pln"> main<span class="pun"><span class="pun">(<span class="typ"><span class="typ">String<span class="pln"><span class="pln"> args<span class="pun"><span class="pun">[]){<span class="pln"><span class="pln">
  <span class="typ"><span class="typ">Info<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> <span class="typ"><span class="typ">String<span class="pun"><span class="pun">><span class="pln"><span class="pln"> i1 <span class="pun"><span class="pun">=<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">new<span class="pln"><span class="pln"> <span class="typ"><span class="typ">Info<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> <span class="typ"><span class="typ">String<span class="pun"><span class="pun">>()<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">  <span class="com"><span class="com">// &#x6CDB;&#x578B;&#x7C7B;&#x578B;&#x4E3A;String  <span class="pln"><span class="pln">
  <span class="typ"><span class="typ">Info<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> <span class="typ"><span class="typ">Object<span class="pun"><span class="pun">><span class="pln"><span class="pln"> i2 <span class="pun"><span class="pun">=<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">null<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
  i2 <span class="pun"><span class="pun">=<span class="pln"><span class="pln"> i1 <span class="pun"><span class="pun">;<span class="pln"><span class="pln">        <span class="com"><span class="com">//&#x8FD9;&#x53E5;&#x4F1A;&#x51FA;&#x9519; incompatible types  <span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
<span class="pun"><span class="pun">};</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>

Java泛型接口

<span class="kwd"><span class="kwd">interface<span class="pln"><span class="pln"> <span class="typ"><span class="typ">Info<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> T<span class="pun"><span class="pun">>{<span class="pln"><span class="pln">  <span class="com"><span class="com">// &#x5728;&#x63A5;&#x53E3;&#x4E0A;&#x5B9A;&#x4E49;&#x6CDB;&#x578B;  <span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> T getVar<span class="pun"><span class="pun">()<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln"> <span class="com"><span class="com">// &#x5B9A;&#x4E49;&#x62BD;&#x8C61;&#x65B9;&#x6CD5;&#xFF0C;&#x62BD;&#x8C61;&#x65B9;&#x6CD5;&#x7684;&#x8FD4;&#x56DE;&#x503C;&#x5C31;&#x662F;&#x6CDB;&#x578B;&#x7C7B;&#x578B;  <span class="pln"><span class="pln">
<span class="pun"><span class="pun">}<span class="pln"><span class="pln">
<span class="kwd"><span class="kwd">class<span class="pln"><span class="pln"> <span class="typ"><span class="typ">InfoImpl<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> T<span class="pun"><span class="pun">><span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">implements<span class="pln"><span class="pln"> <span class="typ"><span class="typ">Info<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> T<span class="pun"><span class="pun">>{<span class="pln"><span class="pln"> <span class="com"><span class="com">// &#x5B9A;&#x4E49;&#x6CDB;&#x578B;&#x63A5;&#x53E3;&#x7684;&#x5B50;&#x7C7B;  <span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">private<span class="pln"><span class="pln"> T <span class="kwd"><span class="kwd">var<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">    <span class="com"><span class="com">// &#x5B9A;&#x4E49;&#x5C5E;&#x6027;  <span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="typ"><span class="typ">InfoImpl<span class="pun"><span class="pun">(<span class="pln"><span class="pln">T <span class="kwd"><span class="kwd">var<span class="pun"><span class="pun">){<span class="pln"><span class="pln">  <span class="com"><span class="com">// &#x901A;&#x8FC7;&#x6784;&#x9020;&#x65B9;&#x6CD5;&#x8BBE;&#x7F6E;&#x5C5E;&#x6027;&#x5185;&#x5BB9;  <span class="pln"><span class="pln">
  <span class="kwd"><span class="kwd">this<span class="pun"><span class="pun">.<span class="pln"><span class="pln">setVar<span class="pun"><span class="pun">(<span class="kwd"><span class="kwd">var<span class="pun"><span class="pun">)<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">void<span class="pln"><span class="pln"> setVar<span class="pun"><span class="pun">(<span class="pln"><span class="pln">T <span class="kwd"><span class="kwd">var<span class="pun"><span class="pun">){<span class="pln"><span class="pln">
  <span class="kwd"><span class="kwd">this<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">var<span class="pln"><span class="pln"> <span class="pun"><span class="pun">=<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">var<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> T getVar<span class="pun"><span class="pun">(){<span class="pln"><span class="pln">
  <span class="kwd"><span class="kwd">return<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">this<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">var<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
<span class="pun"><span class="pun">};<span class="pln"><span class="pln">
<span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">class<span class="pln"><span class="pln"> <span class="typ"><span class="typ">GenericsDemo24<span class="pun"><span class="pun">{<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">static<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">void<span class="pln"><span class="pln"> main<span class="pun"><span class="pun">(<span class="typ"><span class="typ">String<span class="pln"><span class="pln"> arsg<span class="pun"><span class="pun">[]){<span class="pln"><span class="pln">
  <span class="typ"><span class="typ">Info<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> <span class="typ"><span class="typ">String<span class="pun"><span class="pun">><span class="pln"><span class="pln"> i <span class="pun"><span class="pun">=<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">null<span class="pun"><span class="pun">;<span class="pln"><span class="pln">  <span class="com"><span class="com">// &#x58F0;&#x660E;&#x63A5;&#x53E3;&#x5BF9;&#x8C61;  <span class="pln"><span class="pln">
  i <span class="pun"><span class="pun">=<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">new<span class="pln"><span class="pln"> <span class="typ"><span class="typ">InfoImpl<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> <span class="typ"><span class="typ">String<span class="pun"><span class="pun">>(<span class="str"><span class="str">"&#x6C64;&#x59C6;"<span class="pun"><span class="pun">)<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln"> <span class="com"><span class="com">// &#x901A;&#x8FC7;&#x5B50;&#x7C7B;&#x5B9E;&#x4F8B;&#x5316;&#x5BF9;&#x8C61;  <span class="pln"><span class="pln">
  <span class="typ"><span class="typ">System<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">out<span class="pun"><span class="pun">.<span class="pln"><span class="pln">println<span class="pun"><span class="pun">(<span class="str"><span class="str">"&#x5185;&#x5BB9;&#xFF1A;"<span class="pln"><span class="pln"> <span class="pun"><span class="pun">+<span class="pln"><span class="pln"> i<span class="pun"><span class="pun">.<span class="pln"><span class="pln">getVar<span class="pun"><span class="pun">())<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
<span class="pun"><span class="pun">};</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>
<span class="kwd"><span class="kwd">interface<span class="pln"><span class="pln"> <span class="typ"><span class="typ">Info<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> T<span class="pun"><span class="pun">>{<span class="pln"><span class="pln">  <span class="com"><span class="com">// &#x5728;&#x63A5;&#x53E3;&#x4E0A;&#x5B9A;&#x4E49;&#x6CDB;&#x578B;  <span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> T getVar<span class="pun"><span class="pun">()<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln"> <span class="com"><span class="com">// &#x5B9A;&#x4E49;&#x62BD;&#x8C61;&#x65B9;&#x6CD5;&#xFF0C;&#x62BD;&#x8C61;&#x65B9;&#x6CD5;&#x7684;&#x8FD4;&#x56DE;&#x503C;&#x5C31;&#x662F;&#x6CDB;&#x578B;&#x7C7B;&#x578B;  <span class="pln"><span class="pln">
<span class="pun"><span class="pun">}<span class="pln"><span class="pln">
<span class="kwd"><span class="kwd">class<span class="pln"><span class="pln"> <span class="typ"><span class="typ">InfoImpl<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">implements<span class="pln"><span class="pln"> <span class="typ"><span class="typ">Info<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> <span class="typ"><span class="typ">String<span class="pun"><span class="pun">>{<span class="pln"><span class="pln"> <span class="com"><span class="com">// &#x5B9A;&#x4E49;&#x6CDB;&#x578B;&#x63A5;&#x53E3;&#x7684;&#x5B50;&#x7C7B;  <span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">private<span class="pln"><span class="pln"> <span class="typ"><span class="typ">String<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">var<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">    <span class="com"><span class="com">// &#x5B9A;&#x4E49;&#x5C5E;&#x6027;  <span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="typ"><span class="typ">InfoImpl<span class="pun"><span class="pun">(<span class="typ"><span class="typ">String<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">var<span class="pun"><span class="pun">){<span class="pln"><span class="pln">  <span class="com"><span class="com">// &#x901A;&#x8FC7;&#x6784;&#x9020;&#x65B9;&#x6CD5;&#x8BBE;&#x7F6E;&#x5C5E;&#x6027;&#x5185;&#x5BB9;  <span class="pln"><span class="pln">
  <span class="kwd"><span class="kwd">this<span class="pun"><span class="pun">.<span class="pln"><span class="pln">setVar<span class="pun"><span class="pun">(<span class="kwd"><span class="kwd">var<span class="pun"><span class="pun">)<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">void<span class="pln"><span class="pln"> setVar<span class="pun"><span class="pun">(<span class="typ"><span class="typ">String<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">var<span class="pun"><span class="pun">){<span class="pln"><span class="pln">
  <span class="kwd"><span class="kwd">this<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">var<span class="pln"><span class="pln"> <span class="pun"><span class="pun">=<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">var<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="typ"><span class="typ">String<span class="pln"><span class="pln"> getVar<span class="pun"><span class="pun">(){<span class="pln"><span class="pln">
  <span class="kwd"><span class="kwd">return<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">this<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">var<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
<span class="pun"><span class="pun">};<span class="pln"><span class="pln">
<span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">class<span class="pln"><span class="pln"> <span class="typ"><span class="typ">GenericsDemo25<span class="pun"><span class="pun">{<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">static<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">void<span class="pln"><span class="pln"> main<span class="pun"><span class="pun">(<span class="typ"><span class="typ">String<span class="pln"><span class="pln"> arsg<span class="pun"><span class="pun">[]){<span class="pln"><span class="pln">
  <span class="typ"><span class="typ">Info<span class="pln"><span class="pln"> i <span class="pun"><span class="pun">=<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">null<span class="pun"><span class="pun">;<span class="pln"><span class="pln">  <span class="com"><span class="com">// &#x58F0;&#x660E;&#x63A5;&#x53E3;&#x5BF9;&#x8C61;  <span class="pln"><span class="pln">
  i <span class="pun"><span class="pun">=<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">new<span class="pln"><span class="pln"> <span class="typ"><span class="typ">InfoImpl<span class="pun"><span class="pun">(<span class="str"><span class="str">"&#x6C64;&#x59C6;"<span class="pun"><span class="pun">)<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln"> <span class="com"><span class="com">// &#x901A;&#x8FC7;&#x5B50;&#x7C7B;&#x5B9E;&#x4F8B;&#x5316;&#x5BF9;&#x8C61;  <span class="pln"><span class="pln">
  <span class="typ"><span class="typ">System<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">out<span class="pun"><span class="pun">.<span class="pln"><span class="pln">println<span class="pun"><span class="pun">(<span class="str"><span class="str">"&#x5185;&#x5BB9;&#xFF1A;"<span class="pln"><span class="pln"> <span class="pun"><span class="pun">+<span class="pln"><span class="pln"> i<span class="pun"><span class="pun">.<span class="pln"><span class="pln">getVar<span class="pun"><span class="pun">())<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
<span class="pun"><span class="pun">};</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>

Java泛型方法

<span class="kwd"><span class="kwd">class<span class="pln"><span class="pln"> <span class="typ"><span class="typ">Demo<span class="pun"><span class="pun">{<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="pun"><span class="pun"><<span class="pln"><span class="pln"> T<span class="pun"><span class="pun">><span class="pln"><span class="pln"> T fun<span class="pun"><span class="pun">(<span class="pln"><span class="pln">T t<span class="pun"><span class="pun">){<span class="pln"><span class="pln">   <span class="com"><span class="com">// &#x53EF;&#x4EE5;&#x63A5;&#x6536;&#x4EFB;&#x610F;&#x7C7B;&#x578B;&#x7684;&#x6570;&#x636E;  <span class="pln"><span class="pln">
  <span class="kwd"><span class="kwd">return<span class="pln"><span class="pln"> t <span class="pun"><span class="pun">;<span class="pln"><span class="pln">     <span class="com"><span class="com">// &#x76F4;&#x63A5;&#x628A;&#x53C2;&#x6570;&#x8FD4;&#x56DE;  <span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
<span class="pun"><span class="pun">};<span class="pln"><span class="pln">
<span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">class<span class="pln"><span class="pln"> <span class="typ"><span class="typ">GenericsDemo26<span class="pun"><span class="pun">{<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">static<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">void<span class="pln"><span class="pln"> main<span class="pun"><span class="pun">(<span class="typ"><span class="typ">String<span class="pln"><span class="pln"> args<span class="pun"><span class="pun">[]){<span class="pln"><span class="pln">
  <span class="typ"><span class="typ">Demo<span class="pln"><span class="pln"> d <span class="pun"><span class="pun">=<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">new<span class="pln"><span class="pln"> <span class="typ"><span class="typ">Demo<span class="pun"><span class="pun">()<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln"> <span class="com"><span class="com">// &#x5B9E;&#x4F8B;&#x5316;Demo&#x5BF9;&#x8C61;  <span class="pln"><span class="pln">
  <span class="typ"><span class="typ">String<span class="pln"><span class="pln"> str <span class="pun"><span class="pun">=<span class="pln"><span class="pln"> d<span class="pun"><span class="pun">.<span class="pln"><span class="pln">fun<span class="pun"><span class="pun">(<span class="str"><span class="str">"&#x6C64;&#x59C6;"<span class="pun"><span class="pun">)<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln"> <span class="com"><span class="com">// &#x4F20;&#x9012;&#x5B57;&#x7B26;&#x4E32;  <span class="pln"><span class="pln">
  <span class="kwd"><span class="kwd">int<span class="pln"><span class="pln"> i <span class="pun"><span class="pun">=<span class="pln"><span class="pln"> d<span class="pun"><span class="pun">.<span class="pln"><span class="pln">fun<span class="pun"><span class="pun">(<span class="lit"><span class="lit">30<span class="pun"><span class="pun">)<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">  <span class="com"><span class="com">// &#x4F20;&#x9012;&#x6570;&#x5B57;&#xFF0C;&#x81EA;&#x52A8;&#x88C5;&#x7BB1;  <span class="pln"><span class="pln">
  <span class="typ"><span class="typ">System<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">out<span class="pun"><span class="pun">.<span class="pln"><span class="pln">println<span class="pun"><span class="pun">(<span class="pln"><span class="pln">str<span class="pun"><span class="pun">)<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln"> <span class="com"><span class="com">// &#x8F93;&#x51FA;&#x5185;&#x5BB9;  <span class="pln"><span class="pln">
  <span class="typ"><span class="typ">System<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">out<span class="pun"><span class="pun">.<span class="pln"><span class="pln">println<span class="pun"><span class="pun">(<span class="pln"><span class="pln">i<span class="pun"><span class="pun">)<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">  <span class="com"><span class="com">// &#x8F93;&#x51FA;&#x5185;&#x5BB9;  <span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
<span class="pun"><span class="pun">};</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>

通过泛型方法返回泛型类型实例

<span class="kwd"><span class="kwd">class<span class="pln"><span class="pln"> <span class="typ"><span class="typ">Info<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> T <span class="kwd"><span class="kwd">extends<span class="pln"><span class="pln"> <span class="typ"><span class="typ">Number<span class="pun"><span class="pun">>{<span class="pln"><span class="pln"> <span class="com"><span class="com">// &#x6307;&#x5B9A;&#x4E0A;&#x9650;&#xFF0C;&#x53EA;&#x80FD;&#x662F;&#x6570;&#x5B57;&#x7C7B;&#x578B;  <span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">private<span class="pln"><span class="pln"> T <span class="kwd"><span class="kwd">var<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">  <span class="com"><span class="com">// &#x6B64;&#x7C7B;&#x578B;&#x7531;&#x5916;&#x90E8;&#x51B3;&#x5B9A;  <span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> T getVar<span class="pun"><span class="pun">(){<span class="pln"><span class="pln">
  <span class="kwd"><span class="kwd">return<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">this<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">var<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">void<span class="pln"><span class="pln"> setVar<span class="pun"><span class="pun">(<span class="pln"><span class="pln">T <span class="kwd"><span class="kwd">var<span class="pun"><span class="pun">){<span class="pln"><span class="pln">
  <span class="kwd"><span class="kwd">this<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">var<span class="pln"><span class="pln"> <span class="pun"><span class="pun">=<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">var<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="typ"><span class="typ">String<span class="pln"><span class="pln"> toString<span class="pun"><span class="pun">(){<span class="pln"><span class="pln">  <span class="com"><span class="com">// &#x8986;&#x5199;Object&#x7C7B;&#x4E2D;&#x7684;toString()&#x65B9;&#x6CD5;  <span class="pln"><span class="pln">
  <span class="kwd"><span class="kwd">return<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">this<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">var<span class="pun"><span class="pun">.<span class="pln"><span class="pln">toString<span class="pun"><span class="pun">()<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
<span class="pun"><span class="pun">};<span class="pln"><span class="pln">
<span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">class<span class="pln"><span class="pln"> <span class="typ"><span class="typ">GenericsDemo27<span class="pun"><span class="pun">{<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">static<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">void<span class="pln"><span class="pln"> main<span class="pun"><span class="pun">(<span class="typ"><span class="typ">String<span class="pln"><span class="pln"> args<span class="pun"><span class="pun">[]){<span class="pln"><span class="pln">
  <span class="typ"><span class="typ">Info<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> <span class="typ"><span class="typ">Integer<span class="pun"><span class="pun">><span class="pln"><span class="pln"> i <span class="pun"><span class="pun">=<span class="pln"><span class="pln"> fun<span class="pun"><span class="pun">(<span class="lit"><span class="lit">30<span class="pun"><span class="pun">)<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
  <span class="typ"><span class="typ">System<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">out<span class="pun"><span class="pun">.<span class="pln"><span class="pln">println<span class="pun"><span class="pun">(<span class="pln"><span class="pln">i<span class="pun"><span class="pun">.<span class="pln"><span class="pln">getVar<span class="pun"><span class="pun">())<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">static<span class="pln"><span class="pln"> <span class="pun"><span class="pun"><<span class="pln"><span class="pln"> T <span class="kwd"><span class="kwd">extends<span class="pln"><span class="pln"> <span class="typ"><span class="typ">Number<span class="pun"><span class="pun">><span class="pln"><span class="pln"> <span class="typ"><span class="typ">Info<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> T<span class="pun"><span class="pun">><span class="pln"><span class="pln"> fun<span class="pun"><span class="pun">(<span class="pln"><span class="pln">T param<span class="pun"><span class="pun">){<span class="com"><span class="com">//&#x65B9;&#x6CD5;&#x4E2D;&#x4F20;&#x5165;&#x6216;&#x8FD4;&#x56DE;&#x7684;&#x6CDB;&#x578B;&#x7C7B;&#x578B;&#x7531;&#x8C03;&#x7528;&#x65B9;&#x6CD5;&#x65F6;&#x6240;&#x8BBE;&#x7F6E;&#x7684;&#x53C2;&#x6570;&#x7C7B;&#x578B;&#x51B3;&#x5B9A;  <span class="pln"><span class="pln">
  <span class="typ"><span class="typ">Info<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> T<span class="pun"><span class="pun">><span class="pln"><span class="pln"> temp <span class="pun"><span class="pun">=<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">new<span class="pln"><span class="pln"> <span class="typ"><span class="typ">Info<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> T<span class="pun"><span class="pun">>()<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">  <span class="com"><span class="com">// &#x6839;&#x636E;&#x4F20;&#x5165;&#x7684;&#x6570;&#x636E;&#x7C7B;&#x578B;&#x5B9E;&#x4F8B;&#x5316;Info  <span class="pln"><span class="pln">
  temp<span class="pun"><span class="pun">.<span class="pln"><span class="pln">setVar<span class="pun"><span class="pun">(<span class="pln"><span class="pln">param<span class="pun"><span class="pun">)<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">  <span class="com"><span class="com">// &#x5C06;&#x4F20;&#x9012;&#x7684;&#x5185;&#x5BB9;&#x8BBE;&#x7F6E;&#x5230;Info&#x5BF9;&#x8C61;&#x7684;var&#x5C5E;&#x6027;&#x4E4B;&#x4E2D;  <span class="pln"><span class="pln">
  <span class="kwd"><span class="kwd">return<span class="pln"><span class="pln"> temp <span class="pun"><span class="pun">;<span class="pln"><span class="pln"> <span class="com"><span class="com">// &#x8FD4;&#x56DE;&#x5B9E;&#x4F8B;&#x5316;&#x5BF9;&#x8C61;  <span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
<span class="pun"><span class="pun">};</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>

使用泛型统一传入的参数类型

<span class="kwd"><span class="kwd">class<span class="pln"><span class="pln"> <span class="typ"><span class="typ">Info<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> T<span class="pun"><span class="pun">>{<span class="pln"><span class="pln"> <span class="com"><span class="com">// &#x6307;&#x5B9A;&#x4E0A;&#x9650;&#xFF0C;&#x53EA;&#x80FD;&#x662F;&#x6570;&#x5B57;&#x7C7B;&#x578B;  <span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">private<span class="pln"><span class="pln"> T <span class="kwd"><span class="kwd">var<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">  <span class="com"><span class="com">// &#x6B64;&#x7C7B;&#x578B;&#x7531;&#x5916;&#x90E8;&#x51B3;&#x5B9A;  <span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> T getVar<span class="pun"><span class="pun">(){<span class="pln"><span class="pln">
  <span class="kwd"><span class="kwd">return<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">this<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">var<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">void<span class="pln"><span class="pln"> setVar<span class="pun"><span class="pun">(<span class="pln"><span class="pln">T <span class="kwd"><span class="kwd">var<span class="pun"><span class="pun">){<span class="pln"><span class="pln">
  <span class="kwd"><span class="kwd">this<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">var<span class="pln"><span class="pln"> <span class="pun"><span class="pun">=<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">var<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="typ"><span class="typ">String<span class="pln"><span class="pln"> toString<span class="pun"><span class="pun">(){<span class="pln"><span class="pln">  <span class="com"><span class="com">// &#x8986;&#x5199;Object&#x7C7B;&#x4E2D;&#x7684;toString()&#x65B9;&#x6CD5;  <span class="pln"><span class="pln">
  <span class="kwd"><span class="kwd">return<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">this<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">var<span class="pun"><span class="pun">.<span class="pln"><span class="pln">toString<span class="pun"><span class="pun">()<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
<span class="pun"><span class="pun">};<span class="pln"><span class="pln">
<span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">class<span class="pln"><span class="pln"> <span class="typ"><span class="typ">GenericsDemo28<span class="pun"><span class="pun">{<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">static<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">void<span class="pln"><span class="pln"> main<span class="pun"><span class="pun">(<span class="typ"><span class="typ">String<span class="pln"><span class="pln"> args<span class="pun"><span class="pun">[]){<span class="pln"><span class="pln">
  <span class="typ"><span class="typ">Info<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> <span class="typ"><span class="typ">String<span class="pun"><span class="pun">><span class="pln"><span class="pln"> i1 <span class="pun"><span class="pun">=<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">new<span class="pln"><span class="pln"> <span class="typ"><span class="typ">Info<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> <span class="typ"><span class="typ">String<span class="pun"><span class="pun">>()<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
  <span class="typ"><span class="typ">Info<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> <span class="typ"><span class="typ">String<span class="pun"><span class="pun">><span class="pln"><span class="pln"> i2 <span class="pun"><span class="pun">=<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">new<span class="pln"><span class="pln"> <span class="typ"><span class="typ">Info<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> <span class="typ"><span class="typ">String<span class="pun"><span class="pun">>()<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
  i1<span class="pun"><span class="pun">.<span class="pln"><span class="pln">setVar<span class="pun"><span class="pun">(<span class="str"><span class="str">"HELLO"<span class="pun"><span class="pun">)<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">  <span class="com"><span class="com">// &#x8BBE;&#x7F6E;&#x5185;&#x5BB9;  <span class="pln"><span class="pln">
  i2<span class="pun"><span class="pun">.<span class="pln"><span class="pln">setVar<span class="pun"><span class="pun">(<span class="str"><span class="str">"&#x6C64;&#x59C6;"<span class="pun"><span class="pun">)<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">  <span class="com"><span class="com">// &#x8BBE;&#x7F6E;&#x5185;&#x5BB9;  <span class="pln"><span class="pln">
  add<span class="pun"><span class="pun">(<span class="pln"><span class="pln">i1<span class="pun"><span class="pun">,<span class="pln"><span class="pln">i2<span class="pun"><span class="pun">)<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">static<span class="pln"><span class="pln"> <span class="pun"><span class="pun"><<span class="pln"><span class="pln"> T<span class="pun"><span class="pun">><span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">void<span class="pln"><span class="pln"> add<span class="pun"><span class="pun">(<span class="typ"><span class="typ">Info<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> T<span class="pun"><span class="pun">><span class="pln"><span class="pln"> i1<span class="pun"><span class="pun">,<span class="typ"><span class="typ">Info<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> T<span class="pun"><span class="pun">><span class="pln"><span class="pln"> i2<span class="pun"><span class="pun">){<span class="pln"><span class="pln">
  <span class="typ"><span class="typ">System<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">out<span class="pun"><span class="pun">.<span class="pln"><span class="pln">println<span class="pun"><span class="pun">(<span class="pln"><span class="pln">i1<span class="pun"><span class="pun">.<span class="pln"><span class="pln">getVar<span class="pun"><span class="pun">()<span class="pln"><span class="pln"> <span class="pun"><span class="pun">+<span class="pln"><span class="pln"> <span class="str"><span class="str">" "<span class="pln"><span class="pln"> <span class="pun"><span class="pun">+<span class="pln"><span class="pln"> i2<span class="pun"><span class="pun">.<span class="pln"><span class="pln">getVar<span class="pun"><span class="pun">())<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
<span class="pun"><span class="pun">};</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>

Java泛型数组

<span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">class<span class="pln"><span class="pln"> <span class="typ"><span class="typ">GenericsDemo30<span class="pun"><span class="pun">{<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">static<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">void<span class="pln"><span class="pln"> main<span class="pun"><span class="pun">(<span class="typ"><span class="typ">String<span class="pln"><span class="pln"> args<span class="pun"><span class="pun">[]){<span class="pln"><span class="pln">
  <span class="typ"><span class="typ">Integer<span class="pln"><span class="pln"> i<span class="pun"><span class="pun">[]<span class="pln"><span class="pln"> <span class="pun"><span class="pun">=<span class="pln"><span class="pln"> fun1<span class="pun"><span class="pun">(<span class="lit"><span class="lit">1<span class="pun"><span class="pun">,<span class="lit"><span class="lit">2<span class="pun"><span class="pun">,<span class="lit"><span class="lit">3<span class="pun"><span class="pun">,<span class="lit"><span class="lit">4<span class="pun"><span class="pun">,<span class="lit"><span class="lit">5<span class="pun"><span class="pun">,<span class="lit"><span class="lit">6<span class="pun"><span class="pun">)<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln"> <span class="com"><span class="com">// &#x8FD4;&#x56DE;&#x6CDB;&#x578B;&#x6570;&#x7EC4;  <span class="pln"><span class="pln">
  fun2<span class="pun"><span class="pun">(<span class="pln"><span class="pln">i<span class="pun"><span class="pun">)<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">static<span class="pln"><span class="pln"> <span class="pun"><span class="pun"><<span class="pln"><span class="pln"> T<span class="pun"><span class="pun">><span class="pln"><span class="pln"> T<span class="pun"><span class="pun">[]<span class="pln"><span class="pln"> fun1<span class="pun"><span class="pun">(<span class="pln"><span class="pln">T<span class="pun"><span class="pun">...<span class="pln"><span class="pln">arg<span class="pun"><span class="pun">){<span class="pln"><span class="pln"> <span class="com"><span class="com">// &#x63A5;&#x6536;&#x53EF;&#x53D8;&#x53C2;&#x6570;  <span class="pln"><span class="pln">
  <span class="kwd"><span class="kwd">return<span class="pln"><span class="pln"> arg <span class="pun"><span class="pun">;<span class="pln"><span class="pln">   <span class="com"><span class="com">// &#x8FD4;&#x56DE;&#x6CDB;&#x578B;&#x6570;&#x7EC4;  <span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">static<span class="pln"><span class="pln"> <span class="pun"><span class="pun"><<span class="pln"><span class="pln"> T<span class="pun"><span class="pun">><span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">void<span class="pln"><span class="pln"> fun2<span class="pun"><span class="pun">(<span class="pln"><span class="pln">T param<span class="pun"><span class="pun">[]){<span class="pln"><span class="pln"> <span class="com"><span class="com">// &#x8F93;&#x51FA;  <span class="pln"><span class="pln">
  <span class="typ"><span class="typ">System<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">out<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">print<span class="pun"><span class="pun">(<span class="str"><span class="str">"&#x63A5;&#x6536;&#x6CDB;&#x578B;&#x6570;&#x7EC4;&#xFF1A;"<span class="pun"><span class="pun">)<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
  <span class="kwd"><span class="kwd">for<span class="pun"><span class="pun">(<span class="pln"><span class="pln">T t<span class="pun"><span class="pun">:<span class="pln"><span class="pln">param<span class="pun"><span class="pun">){<span class="pln"><span class="pln">
   <span class="typ"><span class="typ">System<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">out<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">print<span class="pun"><span class="pun">(<span class="pln"><span class="pln">t <span class="pun"><span class="pun">+<span class="pln"><span class="pln"> <span class="str"><span class="str">"&#x3001;"<span class="pun"><span class="pun">)<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
  <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
<span class="pun"><span class="pun">};</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>

Java泛型的嵌套设置

<span class="kwd"><span class="kwd">class<span class="pln"><span class="pln"> <span class="typ"><span class="typ">Info<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> T<span class="pun"><span class="pun">,<span class="pln"><span class="pln">V<span class="pun"><span class="pun">>{<span class="pln"><span class="pln">  <span class="com"><span class="com">// &#x63A5;&#x6536;&#x4E24;&#x4E2A;&#x6CDB;&#x578B;&#x7C7B;&#x578B;  <span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">private<span class="pln"><span class="pln"> T <span class="kwd"><span class="kwd">var<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">private<span class="pln"><span class="pln"> V value <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="typ"><span class="typ">Info<span class="pun"><span class="pun">(<span class="pln"><span class="pln">T <span class="kwd"><span class="kwd">var<span class="pun"><span class="pun">,<span class="pln"><span class="pln">V value<span class="pun"><span class="pun">){<span class="pln"><span class="pln">
  <span class="kwd"><span class="kwd">this<span class="pun"><span class="pun">.<span class="pln"><span class="pln">setVar<span class="pun"><span class="pun">(<span class="kwd"><span class="kwd">var<span class="pun"><span class="pun">)<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
  <span class="kwd"><span class="kwd">this<span class="pun"><span class="pun">.<span class="pln"><span class="pln">setValue<span class="pun"><span class="pun">(<span class="pln"><span class="pln">value<span class="pun"><span class="pun">)<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">void<span class="pln"><span class="pln"> setVar<span class="pun"><span class="pun">(<span class="pln"><span class="pln">T <span class="kwd"><span class="kwd">var<span class="pun"><span class="pun">){<span class="pln"><span class="pln">
  <span class="kwd"><span class="kwd">this<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">var<span class="pln"><span class="pln"> <span class="pun"><span class="pun">=<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">var<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">void<span class="pln"><span class="pln"> setValue<span class="pun"><span class="pun">(<span class="pln"><span class="pln">V value<span class="pun"><span class="pun">){<span class="pln"><span class="pln">
  <span class="kwd"><span class="kwd">this<span class="pun"><span class="pun">.<span class="pln"><span class="pln">value <span class="pun"><span class="pun">=<span class="pln"><span class="pln"> value <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> T getVar<span class="pun"><span class="pun">(){<span class="pln"><span class="pln">
  <span class="kwd"><span class="kwd">return<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">this<span class="pun"><span class="pun">.<span class="kwd"><span class="kwd">var<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> V getValue<span class="pun"><span class="pun">(){<span class="pln"><span class="pln">
  <span class="kwd"><span class="kwd">return<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">this<span class="pun"><span class="pun">.<span class="pln"><span class="pln">value <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
<span class="pun"><span class="pun">};<span class="pln"><span class="pln">
<span class="kwd"><span class="kwd">class<span class="pln"><span class="pln"> <span class="typ"><span class="typ">Demo<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> S<span class="pun"><span class="pun">>{<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">private<span class="pln"><span class="pln"> S info <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="typ"><span class="typ">Demo<span class="pun"><span class="pun">(<span class="pln"><span class="pln">S info<span class="pun"><span class="pun">){<span class="pln"><span class="pln">
  <span class="kwd"><span class="kwd">this<span class="pun"><span class="pun">.<span class="pln"><span class="pln">setInfo<span class="pun"><span class="pun">(<span class="pln"><span class="pln">info<span class="pun"><span class="pun">)<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">void<span class="pln"><span class="pln"> setInfo<span class="pun"><span class="pun">(<span class="pln"><span class="pln">S info<span class="pun"><span class="pun">){<span class="pln"><span class="pln">
  <span class="kwd"><span class="kwd">this<span class="pun"><span class="pun">.<span class="pln"><span class="pln">info <span class="pun"><span class="pun">=<span class="pln"><span class="pln"> info <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> S getInfo<span class="pun"><span class="pun">(){<span class="pln"><span class="pln">
  <span class="kwd"><span class="kwd">return<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">this<span class="pun"><span class="pun">.<span class="pln"><span class="pln">info <span class="pun"><span class="pun">;<span class="pln"><span class="pln">
 <span class="pun"><span class="pun">}<span class="pln"><span class="pln">
<span class="pun"><span class="pun">};<span class="pln"><span class="pln">
<span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">class<span class="pln"><span class="pln"> <span class="typ"><span class="typ">GenericsDemo31<span class="pun"><span class="pun">{<span class="pln"><span class="pln">
 <span class="kwd"><span class="kwd">public<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">static<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">void<span class="pln"><span class="pln"> main<span class="pun"><span class="pun">(<span class="typ"><span class="typ">String<span class="pln"><span class="pln"> args<span class="pun"><span class="pun">[]){<span class="pln"><span class="pln">
  <span class="typ"><span class="typ">Demo<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> <span class="typ"><span class="typ">Info<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> <span class="typ"><span class="typ">String<span class="pun"><span class="pun">,<span class="typ"><span class="typ">Integer<span class="pun"><span class="pun">>><span class="pln"><span class="pln"> d <span class="pun"><span class="pun">=<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">null<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">  <span class="com"><span class="com">// &#x5C06;Info&#x4F5C;&#x4E3A;Demo&#x7684;&#x6CDB;&#x578B;&#x7C7B;&#x578B;  <span class="pln"><span class="pln">
  <span class="typ"><span class="typ">Info<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> <span class="typ"><span class="typ">String<span class="pun"><span class="pun">,<span class="typ"><span class="typ">Integer<span class="pun"><span class="pun">><span class="pln"><span class="pln"> i <span class="pun"><span class="pun">=<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">null<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln"> <span class="com"><span class="com">// Info&#x6307;&#x5B9A;&#x4E24;&#x4E2A;&#x6CDB;&#x578B;&#x7C7B;&#x578B;  <span class="pln"><span class="pln">
  i <span class="pun"><span class="pun">=<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">new<span class="pln"><span class="pln"> <span class="typ"><span class="typ">Info<span class="pun"><span class="pun"><<span class="pln"><span class="pln"> <span class="typ"><span class="typ">String<span class="pun"><span class="pun">,<span class="typ"><span class="typ">Integer<span class="pun"><span class="pun">>(<span class="str"><span class="str">"&#x6C64;&#x59C6;"<span class="pun"><span class="pun">,<span class="lit"><span class="lit">30<span class="pun"><span class="pun">)<span class="pln"><span class="pln"> <span class="pun"><span class="pun">;<span class="pln"><span class="pln">  <span class="com"><span class="com">// &#x5B9E;&#x4F8B;&#x5316;Info&#x5BF9;&#x8C61;  <span class="pln"><span class="pln">
  d <span class="pun"><span class="pun">=<span class="pln"><span class="pln"> <span class="kwd"><span class="kwd">new</span><span class="typ">Demo</span><span class="pun"><</span><span class="typ">Info</span><span class="pun"><</span><span class="typ">String</span><span class="pun">,</span><span class="typ">Integer</span><span class="pun">>>(</span><span class="pln">i</span><span class="pun">)</span><span class="pun">;</span><span class="com">// &#x5728;Demo&#x7C7B;&#x4E2D;&#x8BBE;&#x7F6E;Info&#x7C7B;&#x7684;&#x5BF9;&#x8C61;  </span><span class="typ">System</span><span class="pun">.</span><span class="kwd">out</span><span class="pun">.</span><span class="pln">println</span><span class="pun">(</span><span class="str">"&#x5185;&#x5BB9;&#x4E00;&#xFF1A;"</span><span class="pun">+</span><span class="pln"> d</span><span class="pun">.</span><span class="pln">getInfo</span><span class="pun">().</span><span class="pln">getVar</span><span class="pun">())</span><span class="pun">;</span><span class="typ">System</span><span class="pun">.</span><span class="kwd">out</span><span class="pun">.</span><span class="pln">println</span><span class="pun">(</span><span class="str">"&#x5185;&#x5BB9;&#x4E8C;&#xFF1A;"</span><span class="pun">+</span><span class="pln"> d</span><span class="pun">.</span><span class="pln">getInfo</span><span class="pun">().</span><span class="pln">getValue</span><span class="pun">())</span><span class="pun">;</span><span class="pun">}</span><span class="pun">};</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>

转自:http://www.hollischuang.com/archives/228

Original: https://www.cnblogs.com/incognitor/p/9760498.html
Author: 無名之徒
Title: Java泛型用法总结

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/620430/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • ansible-复制模块

    简介:临时的,在ansible中是指需要快速执行的单条命令,并且不需要保存的命令。对于复杂的命令则为 playbook。 1、复制模块 可在终端执行ansible-doc copy…

    数据库 2023年6月14日
    086
  • Java并发编程之AQS以及源码解析

    文章目录 概览 实现思路 实现原理 * 源自CLH锁 AQS数据模型 CAS操作 主要方法 * 自定义同步器的实现方法 AQS定义的模板方法 源码解读 * 等待状态释义 AQS获取…

    数据库 2023年6月6日
    082
  • SpringBoot 搭建基于 MinIO 的高性能存储服务

    1.什么是MinIO MinIO是根据GNU Affero通用公共许可证v3.0发布的高性能对象存储。它与Amazon S3云存储服务兼容。使用MinIO构建用于机器学习,分析和应…

    数据库 2023年6月14日
    0158
  • 容器化 | 在 NFS 备份恢复 RadonDB MySQL 集群数据

    社区于上个月发布了 RadonDB MySQL Kubernetes v2.2.0,集群数据备份恢复的存储类型除了 S3,新增 NFS 存储。本文将为您演示如何进行 NFS 备份及…

    数据库 2023年5月24日
    0154
  • 事务的7种传播行为

    转载:https://blog.csdn.net/soonfly/article/details/70305683 事务传播行为 事务传播行为指的是当一个事务方法被另一个事务方法调…

    数据库 2023年6月6日
    0119
  • Digester解析xml原理

    Tomcat内部是使用Digester来解析xml文件的,将xml转化为java对象。 digester底层是基于SAX+事件驱动+栈的方式来搭建实现的,SAX主要用来解析xml,…

    数据库 2023年6月16日
    080
  • 推荐几款最好用的MySQL开源客户端,建议收藏!

    一、摘要 众所周知,MYSQL 是目前使得最广泛、最流行的数据库技术之一,为了更方便的管理数据库,市场上出现了大量软件公司和个人开发者研发的客户端工具,比如我们所熟知的比较知名的客…

    数据库 2023年6月14日
    098
  • mysql对属性的增删改

    修改表 alter table 创建表db 查看表 desc与describe desc table 查看建表语句show create table t1; 修改表名 alter …

    数据库 2023年6月9日
    0118
  • SpringMVC完整版详解

    1.回顾MVC 1.1什么是MVC MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。 是将业务逻辑、数据、显示分离的方法来组…

    数据库 2023年6月16日
    078
  • JDK自带线程池学习

    JDK自带线程池 线程池的状态 线程有如下状态 RUNNING状态:Accept new tasks and process queued tasks SHUTDOWN状态:Don…

    数据库 2023年6月11日
    0113
  • 中文技术文档写作规范

    使用 markdown 格式书写文档 只使用一二三级标题,三级标题下面的并列性内容使用列表展示 二级标题前使用行分隔符表示分隔 段落之间使用一个空行隔开 一句话或者以逗号分隔的句子…

    数据库 2023年6月6日
    084
  • Consul 入门-集群搭建

    集群搭建 通过 Docker 来搭建一个由3个 Server 组成的数据中心集群,再启动一个 Client 容器来做服务注册和发现的入口,开模拟看看 Server 启动命令 拉取最…

    数据库 2023年6月6日
    098
  • Spring5完整版详解

    1、Spring 1.1简介 2002,首次退出来Spring框架的雏形:interface21框架 Spring框架即以interface21框架为基础,经过重新设计,并不断丰富…

    数据库 2023年6月16日
    086
  • 位图的简单操作

    class BitMap { private byte[] words;//用一个字节数&#x7…

    数据库 2023年6月14日
    0141
  • Nginx实现服务器端集群搭建

    Nginx实现服务器端集群搭建 Nginx与Tomcat部署 前面课程已经将Nginx的大部分内容进行了讲解,我们都知道了Nginx在高并发场景和处理静态资源是非常高性能的,但是在…

    数据库 2023年6月6日
    084
  • Gorm 的黑魔法

    开发过程中,看到同事的代码写了这么一段: db = db.Session(&gorm.Session{Context: db.Statement.Context}).Fir…

    数据库 2023年6月9日
    0104
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球