Создайте свой метод, чтобы принять его
public <T> void printClassNameAndCreateList(Class<T> className){
//example access 1
System.out.print(className.getName());
//example access 2
ArrayList<T> list = new ArrayList<T>();
//note that if you create a list this way, you will have to cast input
list.add((T)nameOfObject);
}
Вызовите метод-
printClassNameAndCreateList(SomeClass.class);
Вы также можете ограничить тип класса, например, это один из методов из библиотеки, которую я сделал:
protected Class postExceptionActivityIn;
protected <T extends PostExceptionActivity> void setPostExceptionActivityIn(Class <T> postExceptionActivityIn) {
this.postExceptionActivityIn = postExceptionActivityIn;
}
Для получения дополнительной информации, поиск Reflection and Generics.