getCanonicalName和getSimpleName getName的区别与应用

时间:2023-01-28 03:18:28

接口:

  1. package com.test;
  2. public interface Fruit {
  3. }

一个实现类:

  1. package com.test;
  2. public class Apple implements Fruit {
  3. }

基本测试类:

    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 }
}

实际应用: hql的泛型查询

  1. public <T> List<T> getRecords(Class<T> c,Date startDate,Date endDate){
  2. StringBuilder hql = new StringBuilder("select t from ");
  3. hql.append(c.getCanonicalName());
  4. hql.append(" t where t.statTime>=:startTime and t.statTime<:endTime ");
  5. Query query = sessionFactory.getCurrentSession().createQuery(hql.toString());
  6. query.setParameter("startTime", startDate);
  7. query.setParameter("endTime", endDate);
  8. return query.list();
  9. }
  10. }
 
http://blog.csdn.net/wirelessqa/article/details/8151889