转载来自: http://my.oschina.net/nutzfans/blog/150700
接口 :
1
2
3
4
5
|
package
com.test;
public
interface
Fruit {
}
|
1
2
3
4
5
|
package
com.test;
public
class
Apple
implements
Fruit {
}
|
基本测试类 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
package
com.test;
import
java.util.ArrayList;
import
java.util.List;
public
class
TestName {
public
static
void
main(String[] args) {
Fruit apple=
new
Apple();
System.out.println(apple.getClass().getCanonicalName());
//返回com.test.Apple
System.out.println(apple.getClass().getSimpleName());
//Apple
System.out.println(apple.getClass().getName());
//返回com.test.Apple
Apple[] arrApple=
new
Apple[]{};
System.out.println(arrApple.getClass().getCanonicalName());
//返回com.test.Apple[]
System.out.println(arrApple.getClass().getSimpleName());
//返回Apple[]
System.out.println(arrApple.getClass().getName());
//返回[Lcom.test.Apple;
System.out.println(String.
class
.getCanonicalName());
//返回java.lang.String
System.out.println(String.
class
.getSimpleName());
//返回String
System.out.println(String.
class
.getName());
//返回java.lang.String
System.out.println(
int
.
class
.getCanonicalName());
//返回int
System.out.println(
int
.
class
.getSimpleName());
//返回int
System.out.println(
int
.
class
.getName());
//返回int
Apple a1=
new
Apple();
Apple a2=
new
Apple();
List<Apple> appleList=
new
ArrayList<Apple>();
appleList.add(a1);
appleList.add(a2);
System.out.println(appleList.getClass().getCanonicalName());
//返回java.util.ArrayList
System.out.println(appleList.getClass().getSimpleName());
//返回ArrayList
System.out.println(appleList.getClass().getName());
//返回java.util.ArrayList
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
|
public
<T> List<T> getRecords(Class<T> c,Date startDate,Date endDate){
StringBuilder hql =
new
StringBuilder(
"select t from "
);
hql.append(c.getCanonicalName());
hql.append(
" t where t.statTime>=:startTime and t.statTime<:endTime "
);
Query query = sessionFactory.getCurrentSession().createQuery(hql.toString());
query.setParameter(
"startTime"
, startDate);
query.setParameter(
"endTime"
, endDate);
return
query.list();
}
}
|
Class类,是获取类的类模板实例对象,通过反射的机制获取。
根据API中的定义,Class.getSimpleName()方法。是获取源代码中给出的‘底层类’简称
而Class.getName();以String的形式,返回Class对象的‘实体’名称