簡單啊,可以這樣聲明LineGet類的read方法咐戚:搭舉
class LineGet {
...
public List<String> read() {
List<String> lst = new ArrayList<知簡碧String>();
....
return lst;
}
...
}
這樣就可以了啊
❷ java中<>
泛型是Java SE 1.5的新特性,泛型的本質是參數化類型,也就是說所操啟渣瞎作的數據類型被指定為一個參數。這種參數類型可以用在類、介面和方法的創建中,分別稱為 泛型類、泛型接悄空口、泛型方法。 Java語言引入泛型的好處是安全簡單。
在Java SE 1.5之前,沒有泛型的情況的下,通過對類型Object的引用來實現參數的「任意化」,「任意化」帶來的缺點是要做顯式的強制類型轉換,而這種轉換是要求開發者對實際參數類型梁喚可以預知的情況下進行的。對於強制類型轉換錯誤的情況,編譯器可能不提示錯誤,在運行的時候才出現異常,這是一個安全隱患。
泛型的好處是在編譯的時候檢查 類型安全,並且所有的 強制轉換都是自動和 隱式的,以提高代碼的重用率。
希望對您有所幫助!~
❸ JAVA程序 編譯提示「未經檢查或不安全操作」
是因為程序裡面有泛型沒有指名是那種類型,所以認為不安全的。但是自己知道就是了。
沒事的。執行就是了。
比如(不指明存放類型在eclipse編輯器中顯示一些黃色波浪線提示。)
//不指明
list存放的類型
list
list
=
new
arraylist();
list.add("a");
string
a
=
(string)list.get(0);
//指名存放類型
list
list2
=
new
arraylist
();
list2.add("a");
string
b
=
list2.get(0);
❹ 請教java List 泛型轉換
如:List<String> list = new ArrayList<String>(); list.add("1");
list.add("2");
採用泛型寫法後,list想加入一個Integer類型的對象時會出現編譯錯誤,通過List<String>,直接限定了list集合中只能含有String類型的元素,從而在後續如果進行for循環就無須進行強制類型轉換,因為此時,集合能夠記住元素的類型信息,編譯器已經能夠確認它是String類型了。
❺ java泛型問題
泛型只針對沒有實例出來的對象。
如:Set<String> set=new TreeSet<String>();
new TreeSet<String>()是實例化之前加的泛型。
ps.keySet()是對象,對象可以加轉型,但不能加泛型。
❻ java中泛型是怎麼做到類型安全的
在類定義處聲明的泛型,則用來指定這個類用來處理的對象類型,這個類中定義的所有方法,只要使用了類定義處聲明的泛型參數,則都必須使用同一個對象,否則,編譯就會出現錯誤
如果僅僅是在方法聲明處定義泛型,則表示這個方法的參數或返回值使用什麼類型的數據。
泛型可以確保我們定義的類型是安全的,不會出現轉換出錯問題等。
1.不再需要強制轉型;
2.編輯器增加了強制檢查集合中的對象類型的功能,避免了在Girl的集合中出現Boy對象的問題(雖然有的時候是我們所期待的)
如:
public class Query{
private T t;
public T get(){...};
public void set(T t){...};
}
如果使用的方式如下:
Query query = new Query();
則上面定義的類與下面的定義一致
public class Query{
private User t;
public User get(){...}
public void set(User t){}
}
❼ java中泛型是什麼意思,作用是什麼
java 泛型是java SE 1.5的新特性,泛型的本質是參數化類型,也就是說所操作的數據類型被指定為一個參數。這種參數類型可以用在類、介面和方法的創建中,分別稱為泛型類、泛型介面、泛型方法。
泛型(Generic type 或者 generics)是對 Java 語言的類型系統的一種擴展,以支持創建可以按類型進行參數化的類。可以把類型參數看作是使用參數化類型時指定的類型的一個佔位符,就像方法的形式參數是運行時傳遞的值的佔位符一樣。
可以在集合框架(Collection framework)中看到泛型的動機。例如,Map 類允許您向一個 Map 添加任意類的對象,即使最常見的情況是在給定映射(map)中保存某個特定類型(比如 String)的對象。
因為 Map.get() 被定義為返回 Object,所以一般必須將 Map.get() 的結果強制類型轉換為期望的類型,如下面的代碼所示:
Map m = new HashMap();
m.put("key", "blarg");
String s = (String) m.get("key");
要讓程序通過編譯,必須將 get() 的結果強制類型轉換為 String,並且希望結果真的是一個 String。但是有可能某人已經在該映射中保存了不是 String 的東西,這樣的話,上面的代碼將會拋出 ClassCastException。
理想情況下,您可能會得出這樣一個觀點,即 m 是一個 Map,它將 String 鍵映射到 String 值。這可以讓您消除代碼中的強制類型轉換,同時獲得一個附加的類型檢查層,該檢查層可以防止有人將錯誤類型的鍵或值保存在集合中。這就是泛型所做的工作。
泛型的好處
Java 語言中引入泛型是一個較大的功能增強。不僅語言、類型系統和編譯器有了較大的變化,以支持泛型,而且類庫也進行了大翻修,所以許多重要的類,比如集合框架,都已經成為泛型化的了。
這帶來了很多好處:
1,類型安全。 泛型的主要目標是提高 Java 程序的類型安全。通過知道使用泛型定義的變數的類型限制,編譯器可以在一個高得多的程度上驗證類型假設。沒有泛型,這些假設就只存在於程序員的頭腦中(或者如果幸運的話,還存在於代碼注釋中)。
2,消除強制類型轉換。 泛型的一個附帶好處是,消除源代碼中的許多強制類型轉換。這使得代碼更加可讀,並且減少了出錯機會。
3,潛在的性能收益。 泛型為較大的優化帶來可能。在泛型的初始實現中,編譯器將強制類型轉換(沒有泛型的話,程序員會指定這些強制類型轉換)插入生成的位元組碼中。但是更多類型信息可用於編譯器這一事實,為未來版本的 JVM 的優化帶來可能。由於泛型的實現方式,支持泛型(幾乎)不需要 JVM 或類文件更改。所有工作都在編譯器中完成,編譯器生成類似於沒有泛型(和強制類型轉換)時所寫的代碼,只是更能確保類型安全而已。
Java語言引入泛型的好處是安全簡單。泛型的好處是在編譯的時候檢查類型安全,並且所有的強制轉換都是自動和隱式的,提高代碼的重用率。
泛型在使用中還有一些規則和限制:
1、泛型的類型參數只能是類類型(包括自定義類),不能是簡單類型。
2、同一種泛型可以對應多個版本(因為參數類型是不確定的),不同版本的泛型類實例是不兼容的。
3、泛型的類型參數可以有多個。
4、泛型的參數類型可以使用extends語句,例如<T extends superclass>。習慣上成為「有界類型」。
5、泛型的參數類型還可以是通配符類型。例如Class<?> classType = Class.forName(Java.lang.String);
泛 型還有介面、方法等等,內容很多,需要花費一番功夫才能理解掌握並熟練應用。在此給出我曾經了解泛型時候寫出的兩個例子(根據看的印象寫的),實現同樣的 功能,一個使用了泛型,一個沒有使用,通過對比,可以很快學會泛型的應用,學會這個基本上學會了泛型70%的內容。
❽ java 編譯時出現「使用了未經檢查或或不安全的操作」,請高手幫忙
提示的是沒有用到泛型LinkedList lines = new LinkedList();下面是用了泛型LinkedList<String> lines = new LinkedList<String>(); JDK在1.5版本以上才支持泛型,如果是1.4以前的版本是不會提示這個的。 泛型的作用是猛消譽預定好集合中對象的類型,相對不用泛型的橋枯集合來講是比較安全,而且訪問枝段的時候也比較簡單。當然這個提示可以不管,程序是一樣沒有問題的
❾ java泛型深入解釋:public <T> Test<T> tttttt(String s,Bean bean) {}
public<T>腔升配Test<T>tttttt(Strings,Bean笑胡bean){}
第一個<T>是固定語法 可以理解為在這個方法中使用的泛型用符號T表示,當然你也可以伍指用別的名字。
Test<T> 說明類型Test的定義中也使用了泛型public class Test<T> {}
❿ 對java泛型的理解
泛型的定義主要有以下兩種:
在程序編碼中一些包含類型參數的類型,也就是說泛型的參數只可以代表類,不能代表個別對象。(這是當今較常見的定義)
在程序編碼中一些包含參數的類。其參數可以代表類或對象等等。(現在人們大多把這稱作模板)
泛型的好處是在編譯的時候檢查類型安全,並且所有的強制轉換都是自動和隱式的,提高代碼的重用率。
泛型只不過是java中的類型而已,繼承自Type介面。