泛型陣列+泛型巢狀+泛型應用例項
泛型陣列
使用泛型方法時,也可以傳遞和返回一個泛型陣列。
【接收和返回泛型陣列】
@SuppressWarnings("unchecked")
public class GeneriseDemo30
{
public static void main(String args[]){
//返回泛型陣列
Integer i[]=fun(1,2,3,4,5,6);
//輸出陣列內容
fun2(i);
}
//接收可變引數,返回泛型陣列
public static <T> T[] fun(T...arg){
return arg;
}
public static <T> void fun2(T param[]){
System.out.println("接收泛型陣列:");
for (T t : param )
{
System.out.print(t+"、");
}
}
}
結果:
以上程式從fun()方法中返回一個泛型陣列,在fun()方法接收引數是使用了可變引數傳遞方式,然後將fun()返回的泛型陣列給fun2()進行輸出
泛型巢狀
也可以在一個類的泛型中指定另外一個類的泛型。
【定義兩個泛型】
class Info<T,V>
{
private T var;
private V value;
public Info(T var,V value){
this.setVar(var);
this.setValue(value);
}
public T getVar(){
return var;
}
public void setVar(T var){
this.var=var;
}
public V getValue(){
return value;
}
public void setValue(V value){
this.value=value;
}
}
class Demo<S>
{
private S info;
public Demo(S info){
this.setInfo(info);
}
public S getInfo(){
return info;
}
public void setInfo(S info){
this.info=info;
}
}
public class GeneriseDemo31
{
public static void main(String args[]){
Demo<Info<String,Integer>> d=null;
Info<String,Integer> i=null;
i=new Info<String,Integer>("凹凸",22);
d=new Demo<Info<String,Integer>>(i);
System.out.println("1."+d.getInfo().getVar());
System.out.println("2."+d.getInfo().getValue());
}
}
執行結果:
例項——泛型應用
使用者在設計類的時候往往會關聯,例如,一個人中可以定義一個資訊的屬性,但是一個人可能有各種各樣的資訊(如聯絡方式、基本資訊)等,所以此資訊屬性的型別就可以通過泛型進行宣告,然後只要設計相應的資訊類即可。
【定義標識介面–資訊】
interface Info
{
//定義一個標識介面,此介面沒有定義任何方法
}
【定義第一個類–聯絡方式】
class Contact implements Info
{
private String address;
private String telphone;
public Contact(String address,String telphone){
this.setAddress(address);
this.setTelphone(telphone);
}
public String getAddress(){
return this.address;
}
public void setAddress(String address){
this.address=address;
}
public String getTelphone(){
return this.telphone;
}
public void setTelphone(String telphone){
this.telphone=telphone;
}
public String toString(){
return "聯絡方式:"+"\n"+
"\t|--聯絡地址:"+this.address+
"\t|--聯絡電話:"+this.telphone;
}
}
【定義第二個類–個人資訊】
class Introduce implements Info
{
private String name;
private int age;
public Introduce(String name,int age){
this.setName(name);
this.setAge(age);
}
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
public int getAge(){
return age;
}
public void setAge(int age){
this.age=age;
}
public String toString(){
return "個人資訊:"+"\n"+
"\t|--姓名:"+this.name+
"\t|--年齡:"+this.age;
}
}
【定義Person類,使用泛型】
class Person<T extends Info>
{
private T info;
public Person(T info){
this.setInfo(info);
}
public T getInfo(){
return this.info;
}
public void setInfo(T info){
this.info=info;
}
public String toString(){
return this.info.toString();
}
}
測試:
public class GeneriseDemo32
{
public static void main(String args[]){
//宣告Person物件,同時指定Contact型別
Person<Contact> per=null;
per=new Person<Contact>(new Contact("中國","111111"));
System.out.println(per);
//宣告Person物件,同時指定Introduce型別
Person<Introduce> per2=null;
per2=new Person<Introduce>(new Introduce("凹凸",20));
System.out.println(per2);
}
}
執行結果:
相關推薦
泛型陣列+泛型巢狀+泛型應用例項
泛型陣列 使用泛型方法時,也可以傳遞和返回一個泛型陣列。 【接收和返回泛型陣列】 @SuppressWarnings("unchecked") public class GeneriseDemo30 { public static void
使用swagger-bootstarap-ui 響應類3層巢狀泛型顯示的坑
正常一個分頁查詢的介面返回格式應該是 返回 資料統一的封裝類<分頁資料<要展示的資料類>> 得到的也就是一個3層巢狀2層泛型的資料結構! 也就是這樣 其實也就是 PageHelper 提供的 pageInfo 資訊的複製 加上sw
fastjson解析巢狀泛型
/** * author zoush * CreateTime 2017-06-03 16:01 * 直接上虛擬碼 */ public class Outer<T> {
Gson和fastJson 解析巢狀泛型的json資料
Test /* * { "code": 1, "datas": [{ "address": "深圳",
使用Gson解析複雜的泛型巢狀泛型資料結構
一、Gson Gson是由Google自家出來的Json解析庫,使用起來相容性方面當然會有很多優勢,而且解析Json資料也很方便,掌握了Gson的一些基本使用之後就可以使用它解析很多複雜的Json資料了。但當我們要解析一個複雜的資料結構時,比如說List<
如何重構多重巢狀“箭頭型”程式碼
本文轉載自 酷 殼 – CoolShell 陳皓。 所謂箭頭型程式碼,基本上來說就是下面這個圖片所示的情況。 那麼,這樣“箭頭型”的程式碼有什麼問題呢?看上去也挺好看的,有對稱美。但是…… 關於箭頭型程式碼的問題有如下幾個: 1)我的顯示器不夠寬,箭頭型程式碼縮排太狠了,需
JSON 陣列多層巢狀, value值 又是一個JSON陣列
[[{"typets": "1","ans": [{"tu": "3","ans": "","sc": "1"}, {"tu": "4","ans": "","sc": "1"}, {"tu": "7","ans": "","sc": "1"}, {"tu": "8","an
OC陣列和字典巢狀練習:省市區
將檔案中的省市區讀出來並放在陣列和字典巢狀的資料結構中 有註釋的版本: #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleas
巢狀類以及引用例項
#include class A { private: int m; public: A(){} A(int v){this->m=v;B b(2);b.printn();} void printm(){cout<<"m="<<m<<endl;} class B
“全棧2019”Java第八十七章:類中巢狀介面的應用場景(拔高題)
難度 初級 學習時間 10分鐘 適合人群 零基礎 開發語言 Java 開發環境 JDK v11 IntelliJ IDEA v2018.3 文章原文連結 “全棧2019”Java第八十七章:類中巢狀介面的應用場景(拔高題) 下一章 “全棧2019”Java第八十八章:介
“全棧2019”Java第八十八章:介面中巢狀介面的應用場景
難度 初級 學習時間 10分鐘 適合人群 零基礎 開發語言 Java 開發環境 JDK v11 IntelliJ IDEA v2018.3 文章原文連結 “全棧2019”Java第八十八章:介面中巢狀介面的應用場景 下一章 “全棧2019”Java第八十九章:介面中能定
Python遞迴實現多層巢狀dict遍歷例項--三級選單/多級選單功能
要求:構建一個三(N)級選單,實現使用者可以根據指示選擇進入選單,退出選單,返回上層選單功能。知識點:dict資料的遍歷方法,遞迴遍歷方法。環境:Python3.6實現程式碼:#!/usr/bin/evn python # -*-coding:utf8 -*- class m
MATLAB巢狀函式的應用
巢狀函式在求解積分上限中的應用 例1如下述積分表示式,已知a、e和l,如何求得β0? 本例關於β的積分結果不能解析表達,需要數值積分來做,同時還要求一個非線性方程。程式碼如下: function sol=example1(a,e,l) f
動態SQL 和 巢狀遊標的使用例項
mysql動態執行sql,這邊重點程式碼是: set f_sql=CONCAT('rename table cw_computer_resulttest to cw_computer_result',f_last,';'); set @ms=f_sql; PREPARE
java 泛型詳解(普通泛型、 萬用字元、 泛型介面,泛型陣列,泛型方法,泛型巢狀)
JDK1.5 令我們期待很久,可是當他釋出的時候卻更換版本號為5.0。這說明Java已經有大幅度的變化。本文將講解JDK5.0支援的新功能-----Java的泛型. 1、Java泛型 其實Java
Java泛型--泛型應用--泛型介面、泛型方法、泛型陣列、泛型巢狀
1、泛型介面 1.1泛型介面的基本概念 1.2泛型介面實現的兩種方式 定義子類:在子類的定義上也宣告泛型型別 interface Info<T>{ // 在介面上定義泛型 pub
Java 知識點整理-10.Java集合框架 去除ArrayList中重複字串、自定義物件 棧和佇列 泛型 JDK5新特性 asList() toArray(T[] a) ArrayList迴圈巢狀
詳細標題:去除ArrayList中重複字串、自定義物件元素方式 棧和佇列 泛型 JDK5新特性(增強for迴圈 三種迭代(普通for、迭代器、增強for)中的元素能否刪除 靜態匯入 可變引數)Arrays工具類的asList() Collection中toArray(T[] a) 集合巢狀之Arra
16 API-集合(List的子類(ArrayList_Vector_LinkedList,集合巢狀遍歷),JDK5新特性(泛型,增強for迴圈,靜態匯入,可變引數)
1:List的子類(掌握) (1)List的子類特點ArrayList:底層資料結構是陣列,查詢快,增刪慢執行緒不安全,效率高Vector:底層資料結構是陣列,查詢快,增刪慢執行緒安全,效率低LinkedList:底層資料結構是連結串列,查詢慢,增刪快執行緒不安全,效率高
fastjson反序列化巢狀類為對應實體類 ResultObject的反序列化及泛型優化
內部類反序列化問題 工程中,常常使用ResultObject類或者Msg類作為通用返回型別 @Data public class Msg { private String type; //data欄位,Object型別,通常需要轉換為對應實體類
java-ArrayList中去重複字串或重複物件、LinkedList集合、泛型、增強for、靜態匯入、可變引數、asList()方法、集合巢狀
1、去除ArrayList中重複字串元素方式 * A:案例演示 * 需求:ArrayList去除集合中字串的重複值(字串的內容相同) * 思路:建立新集合方式 /** * A:案例演示 * 需求:ArrayList去除集合中字串的重複值(字串的內容相同)