創建一個接口(使用模板):我該如何使用java模板實現這個方法?
package util.filter;
public interface Filter<INPUT,OUTPUT> {
public OUTPUT filter(INPUT mes);
}
和實現類(僅用於測試):
package util.filter;
public static class TestImplFilter implements Filter<Integer,String>{
public String filter(Integer i){
return "Hello World!";
}
}
我可以使用此代碼來測試:
Filter<Integer,String> f=new TestImplFilter();
System.out.println(f.filter(123));
//output: Hello World!
現在,我想創建一個靜態方法,使用impl類路徑
util.filter.TestImplFilter
)作爲參數,
和INPUT作爲第二個參數,並返回一個OUTPUT。
所以,我所著遵循代碼:
private static Object createInstance(String classPath) {
try {
Class<?> tClass = Class.forName(classPath);
if (tClass != null) {
return tClass.newInstance();
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public final static Filter<?,?> getFilter(String path){
return (Filter<?,?>)createInstance(path);
}
//my problem in here:
public final static OUTPUT filter(String path,INPUT mes){
Filter<?,?> filter = (Filter<?, ?>) createInstance(path);
return filter.filter(mes);
}
我在靜態方法filter(String path,INPUT mes)
問題,這個代碼是錯誤。
我該如何解決這個問題並實現這個方法?
感謝幫助:)
當您將「此代碼爲錯誤」替換爲實際錯誤時,更容易提供幫助。 – 2011-03-16 16:16:25
@Kirk Woll這是一個簡單的編譯器錯誤:INPUT和OUTPUT無法解析爲類型。 – Ralph 2011-03-16 16:20:01