Android java基礎_泛型

一.java泛型是什么

Java 泛型(Generic)是 Java 5 中引入的一種特性,它允許類、接口和方法在定義時使用一個或多個類型參數,這些類型參數在調用時會被實際類型替換,從而增強了代碼的重用性和類型安全性。通過使用泛型,我們可以編寫出更加通用的代碼,同時也可以減少代碼中的強制類型轉換操作,提高代碼的可讀性和可維護性。

在 Java 泛型中,我們可以使用以下符號來定義泛型:
<T>:表示定義一個類型參數 T,可以是任何標識符,通常用大寫字母表示,例如 List。
<E>:表示定義一個元素類型參數 E,通常用于集合類中,例如 List。
<K, V>:表示定義一個鍵值對類型參數 K 和 V,通常用于 Map 類中,例如 Map<K, V>。
在使用泛型時,可以將實際類型作為參數傳遞給泛型,例如 List,這樣就可以創建一個只能存儲 String 類型元素的列表。泛型在 Java 中的實現方式是使用類型擦除技術,即在編譯時將泛型類型轉換為原始類型,從而避免了類型檢查的開銷和運行時的類型轉換。

二.普通的泛型類


class Person<T> {private T age;public void setAge(T age) {this.age = age;}public T getAge() {return this.age;}
}public class Generics {public static void main(String args[]) {Person<String> p = new Person<String>();p.setAge("3 years old");System.out.println(p.getAge());Person<Integer> p2 = new Person<Integer>();p2.setAge(3);System.out.println(p2.getAge());}
}

運行結果:

root@ubuntu:/home/topeet/guyilian# javac Generics.java 
root@ubuntu:/home/topeet/guyilian# java Generics
3 years old
3

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/715343.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/715343.shtml
英文地址,請注明出處:http://en.pswp.cn/news/715343.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

鴻蒙Harmony應用開發—ArkTS聲明式開發(通用屬性:形狀裁剪)

用于對組件進行裁剪、遮罩處理。 說明&#xff1a; 從API Version 7開始支持。后續版本如有新增內容&#xff0c;則采用上角標單獨標記該內容的起始版本。 clip clip(value: boolean | CircleAttribute | EllipseAttribute | PathAttribute | RectAttribute) 按指定的形狀對當…

Spring基礎——XML配置Bean的實例化

目錄 實例化Bean的方式使用構造函數實例化Bean使用靜態工廠的方式實例化Bean使用實例化工廠方式實例化Bean通過實現FactoryBean自定義實例化Bean 實例化Bean的方式 bean的創建本質上就是創建一個或多個具有外部配置屬性的對象&#xff0c;容器在啟動的時候會查看命名Bean的配置…

中美加密監管突傳“巨響”!比特幣突破7萬信號出現!馬斯克一句話掀起大行情!

比特幣本周觸及64000美元高價&#xff0c;2月交易所儲備減少近45000多枚比特幣&#xff0c;市場將其解讀為看漲70000美元的關鍵信號。中美加密監管傳利好&#xff0c;香港加密牌照申請期限結束&#xff0c;已有24家機構入列待批&#xff0c;美國考慮允許比特幣ETF及相關信托期權…

uview2中上傳文件和若依前后端分離配合的代碼

uview2中的上傳文件需要配合著自己后端的上傳的代碼 uview2 代碼&#xff1a; uploadFilePromise(url) {return new Promise((resolve, reject) > {// 后續自己封裝let a uni.uploadFile({//自己的請求路徑url: that.$baseURL /uploadAvater, //上傳的文件filePath: tha…

Java | vscode如何使用命令行運行Java程序

1.在vscode中新建一個終端 2.在終端中輸入命令 javac <源文件>此命令執行后&#xff0c;在文件夾中會生成一個與原java程序同名的.class文件。然后輸入如下命令&#xff1a; java <源文件名稱>這樣java程序就運行成功了。&#x1f607;

LeetCode:2368. 受限條件下可到達節點的數目(dfs Java)

目錄 2368. 受限條件下可到達節點的數目 題目描述&#xff1a; 實現代碼與解析&#xff1a; DFS 原理思路&#xff1a; 2368. 受限條件下可到達節點的數目 題目描述&#xff1a; 現有一棵由 n 個節點組成的無向樹&#xff0c;節點編號從 0 到 n - 1 &#xff0c;共有 n - …

02-Vue 計算屬性與監聽器與VUE-cli使用

1.計算屬性 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width,…

Android java基礎_反射

一.反射的基本概念 反射&#xff08;Reflection&#xff09;&#xff0c;Java 中的反射機制是指&#xff0c;Java 程序在運行期間可以獲取到一個對象的全部信息。 反射機制一般用來解決Java 程序運行期間&#xff0c;對某個實例對象一無所知的情況下&#xff0c;如何調用該對…

單源最短路的建圖方式

1129. 熱浪 - AcWing題庫 這道題可以有三種方法來做&#xff0c;樸素版的dijkstra、堆優化版的dijkstra和spfa算法 &#xff08;1&#xff09;spfa算法 這里的隊列用循環隊列&#xff0c;而不是像模板那樣用普通隊列是因為它的隊列長度不確定 import java.util.*;public class…

mysql 大數據量分批添加索引

先在測試環境測試&#xff0c;沒問題再上生產環境&#xff0c;避免生產環境數據庫負載過多而崩潰 創建存儲過程 DELIMITER //CREATE PROCEDURE batch_add_index_to_email() BEGINDECLARE done INT DEFAULT FALSE;DECLARE start_id INT DEFAULT 0;DECLARE end_id INT;DECLARE …

貝葉斯優化CNN分類(matlab代碼)

貝葉斯優化CNN分類matlab代碼 數據為Excel分類數據集數據。 數據集劃分為訓練集、驗證集、測試集&#xff0c;比例為8:1:1 數據處理: 在數據加載后&#xff0c;對數據進行了劃分&#xff0c;包括訓練集、驗證集和測試集&#xff0c;這有助于評估模型的泛化能力。 數據標準化…

13.7隊列的實戰(通過鏈表實現)

學個二叉樹&#xff0c;又要用上隊列的代碼&#xff0c;上學期學的隊列忘光光了&#xff0c;這不沒辦法回來復習咯 代碼&#xff1a; #include <stdio.h> #include <stdlib.h>typedef int ElemType; typedef struct LinkNode{ElemType data;struct LinkNode *next…

動態規劃(算法競賽、藍橋杯)--樹形DP沒有上司的舞會

1、B站視頻鏈接&#xff1a;E17 樹形DP Luogu P1352 沒有上司的舞會_嗶哩嗶哩_bilibili 題目鏈接&#xff1a;沒有上司的舞會 - 洛谷 #include <bits/stdc.h> using namespace std; const int N6010; int n; int w[N]; vector<int>a[N];//鄰接表 bool fa[N]; int…

011 Linux_線程概念與創建

前言 本文將會向你介紹線程的概念&#xff0c;以及線程是怎么被創建的 線程概念 一、進程是承擔系統資源的基本實體&#xff0c;線程是cpu調度的基本單位 首先&#xff0c;地址空間在邏輯上相當于進程的資源窗口&#xff0c; 每個進程都有這樣一個資源窗口。通過地址空間頁…

工控傳感器選型原則及舉例說明

工控傳感器選型原則及舉例說明 前言選型原則知識儲備光電傳感器接近開關和行程開關磁性開關模擬量傳感器類型及使用范圍數字量傳感器類型及使用范圍 選型舉例食品包裝箱運輸過程中的檢測有無倉庫提升伺服的極限位檢測產品高度檢測 前言 這里僅以數字量和模擬量信號的傳感器舉例…

Vue源碼系列講解——實例方法篇【二】(事件相關方法)

目錄 0.前言 1. vm.$on 1.1 用法回顧 1.2 內部原理 2. vm.$emit 2.1 用法回顧 2.2 內部原理 3. vm.$off 3.1 用法回顧 3.2 內部原理 4. vm.$once 4.1 用法回顧 4.2 內部原理 0.前言 與事件相關的實例方法有4個&#xff0c;分別是vm.$on、vm.$emit、vm.$off和vm.$o…

前端面試知識點合集

原型和原型鏈 任何函數都可以作為構造函數。當該函數通過 new 關鍵字調用的時候&#xff0c;就稱之為構造函數。 var Parent function(){}//定義一個函數&#xff0c;那它只是一個普通的函數&#xff0c;不能稱它為構造函數var instance new Parent(); //這時這個Parent就不…

C#理論 —— WPF 應用程序Console 控制臺應用

文章目錄 1. WPF 應用程序1.1 工程創建1.2 控件1.2.1 控件的公共屬性1.2.1 TextBox 文本框1.2.1 Button 按鈕 *. Console 控制臺應用1.1 工程創建 1. WPF 應用程序 1.1 工程創建 Visual Studio 中新建項目 - 選擇WPF 應用程序&#xff1b; 1.2 控件 1.2.1 控件的公共屬性 …

如何備份和恢復MySQL數據庫?有哪些常見的備份工具和策略?

如何備份和恢復MySQL數據庫&#xff1f;有哪些常見的備份工具和策略&#xff1f; 在數據庫管理中&#xff0c;備份和恢復是非常重要的環節&#xff0c;它們保障了數據的安全性和可恢復性。對于MySQL這樣的關系型數據庫管理系統&#xff0c;了解并實施有效的備份策略至關重要。…

Linux網絡編程——網絡基礎

Linux網絡編程——網絡基礎 1. 網絡結構模式1.1 C/S 結構1.2 B/S 結構 2. MAC 地址3. IP地址3.1 簡介3.2 IP 地址編址方式 4. 端口4.1 簡介4.2 端口類型 5. 網絡模型5.1 OSI 七層參考模型5.2 TCP/IP 四層模型 6. 協議6.1 簡介6.2 常見協議6.3 UDP 協議6.4 TCP 協議6.5 IP 協議6…