我有其簽名的方法:如果我想噸至是Class<String>
如果我有麻煩Java:我如何指定一個類方法參數的類?
String str = isA(String.class);
是:
Class<String> cls = isA(???);
public static <T> T isA(Class<T> clazz);
所以我能做到這一點
我不知道如何制定參數isA()
。任何人都可以提供指導?
如果你想知道爲什麼我想這樣做,我使用EasyMock來模擬一個需要Class<T>
參數的類。
編輯:我被要求添加一個我想要做的例子。
我試圖用EasyMock來模擬Solr的SolrCore類作爲測試用例的一部分。 SolrCore的方法之一的簽名是:
public <T extends Object> T createInitInstance(PluginInfo info, Class<T> cast, String msg, String defClassName);
隨着EasyMock我可以設置該方法的期望。將構建isA(PluginInfo.class)
,例如,告訴EasyMock的匹配類PluginInfo的任何對象:
QueryParserPlugin queryPlugin = createNiceMock(QueryParserPlugin.class);
SolrCore core = createNiceMock(SolrCore.class);
expect(core.createInitInstance(
isA(PluginInfo.class), isA(xxx),
anyString(), anyString())).andReturn(queryPlugin);
我的問題告訴isA()
匹配Class<T>
類,其中T在這種情況下是QueryParserPlugin的任何對象。
基本上,你沒有。沒有'Class>'。 –
也許你應該向我們展示你正在努力完成的一個例子。 –
不是我認爲它會工作,但我很好奇,如果你通過'String.class.getClass()'作爲參數會發生什麼。 – jaco0646