Nếu bạn tình cờ biết ConsumingHandler
là giao diện chỉ AtomEntryHandler
dụng cụ, và bạn tình cờ biết nó chỉ mất một đối số kiểu, bạn có thể làm điều này:
interface ConsumingHandler<T> {}
class AtomEntry {}
class AtomEntryHandler implements ConsumingHandler<AtomEntry>
{
public static void main(String[] args)
{
Type[] interfaces = AtomEntryHandler.class.getGenericInterfaces();
ParameterizedType firstInterface = (ParameterizedType) interfaces[0];
Class c = (Class) firstInterface.getActualTypeArguments()[0];
System.out.println(c.getName()); // prints "AtomEntry"
}
}
Nếu không, bạn có thể poke xung quanh trong getGenericInterfaces()
và của họ actualTypeArguments
cho đến khi bạn tìm thấy một cái gì đó trông giống như những gì bạn đang tìm kiếm. Nhưng nếu bạn thấy mình cần làm điều này trong mã thực, có thể có điều gì đó không ổn trong thiết kế của bạn, hoặc bạn đang viết thư viện đối tượng giả thiên tài điên và bạn không cần chúng tôi trả lời những câu hỏi này.
Nguồn
2011-10-25 21:37:14
Bạn của bạn có nói như thế nào không? –
không, vì thế câu hỏi :-D – ekj
Câu trả lời của Alex Gitelman có phù hợp với bạn không? –