java泛介面
㈠ java泛型介面是怎麼一回事,干什麼用的
這個啊 泛型好處多了。
有了泛型 你可以再hashtable中存任何類型的value 包括自定義的類
例如。有一個類是 class client{}
Hashtable<String ,client> ht = new Hashtable<String ,client>();
很方便的東西。讓你代碼更完美的。
=============================接話獻佛========================
應該是我很久沒有好好學技術了,有時候想用的時候卻發現不會寫,比如今天遇到了泛型介面,所以要記錄一下,這樣才能更明白...
在這里我並不想說泛型介面怎麼寫,這個很簡單,後面會寫的,只是想說我為什麼要用.
泛型介面的意圖是什麼?請看如下的問題:
Java代碼
abstract class BaseBean{
//略
}
Interface IA{
public BaseBean doSomething();
}
下面我們繼承這個BaseBean
Java代碼
class ChildBean extends BaseBean{
}
接下來實現介面
Java代碼
class IAImpl implements IA{
public BaseBean doSomething(){
return new ChildBean();
}
}
好了這是慣常的寫法,但是同學們有沒有發現一個問題當你返回得到BaseBean的時候其實你需要的是他的實例而不是這個真實的Bean,而當你強轉時又需要注意兩點: NullPoint 和 類型是否對,這個很麻煩,因為調用者完全不知道調用什麼.那麼我們來描述我們需要什麼:
我們需要IA的doSomething返回的是一個對象這個對象extends於BaseBean
那麼接下來我們就用泛型介面吧:
Java代碼
Interface IA<T extends BaseBean>{
public T doSomething();
}
class IAImpl implements IA<ChildBean>{
public ChildBean doSomething(){
return new ChildBean();
}
}
這樣當你調用這個實現的時候就能明確地得到返回的對象類型,清楚明了,這就是泛型介面的使用.其實我們平時一直在用的 Iterable就是這玩意大家可以去看下. 回家准備讀下java編程思想中的相關段落.
總結今天收獲很大,這里要感謝下靈芝同學給我的幫助,是她告訴了我,我所想要的東西叫泛型介面,感謝...
下次等我把泛型都再重新回爐下,再來把泛型的其他東西講來聽聽...
㈡ java編程題:請按照下列提示編寫一個泛型介面以及其實現類
Generic.java:
package com.example.demo;
public interface Generic<T> {
void get(T t);
}
GenericImpl.java:
package com.example.demo;
public class GenericImpl<T> implements Generic<T> {
@Override
public void get(T t) {
}
}
㈢ java中介面具有泛型,繼承的時候該怎麼處理
大部分java離得介面好像都是泛型吧?
class test implements 介面<對象(例如String,Integer等等)>
㈣ Java泛型 繼承介面相關問題
當然正確。
FifoCache是一個泛型類,V由在創建此類的實例時指定具體類型,再傳給介面中的V,而介面interface Cache<K,V>中的K已顯式指定為String類型。因此,在創建此類的實例時,介面interface Cache<K,V>中的K,V都已指定了具體的類型,當然正確。
㈤ Java介面內定義泛型方法如何實現
介面 IHuman.java
public interface IHuman<K, V> {
V execute(K request) throws Exception;
}
實現 MaleHuman.java
public class MaleHuman implements IHuman<String, String> {
@Override
public String execute(String request) throws Exception {
return ...;
}
}
按照以上介面內的泛型方法,能進行子類實現也不會報錯。
但是介面內的泛型方法換種寫法,就不知道如何寫實現了。
介面 IHuman.java (改)
public interface IHuman {
<K, V> V execute(K request) throws Exception;
}