`

getCanonicalName和getSimpleName getName的区别与应用

    博客分类:
  • J2SE
 
阅读更多

转自:http://blog.csdn.net/wirelessqa/article/details/8151889

 

 

接口:

Java代码 收藏代码
  1. package com.test;
  2. public interface Fruit {
  3. }

 

 

一个实现类:

Java代码 收藏代码
  1. package com.test;
  2. public class Apple implements Fruit {
  3. }

 

基本测试类:

Java代码 收藏代码
  1. package com.test;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. public class TestName {
  5. public static void main(String[] args) {
  6. Fruit apple=new Apple();
  7. System.out.println(apple.getClass().getCanonicalName());//返回com.test.Apple
  8. System.out.println(apple.getClass().getSimpleName());//Apple
  9. System.out.println(apple.getClass().getName());//返回com.test.Apple
  10. Apple[] arrApple=new Apple[]{};
  11. System.out.println(arrApple.getClass().getCanonicalName());//返回com.test.Apple[]
  12. System.out.println(arrApple.getClass().getSimpleName());//返回Apple[]
  13. System.out.println(arrApple.getClass().getName());//返回[Lcom.test.Apple;
  14. System.out.println(String.class.getCanonicalName());//返回java.lang.String
  15. System.out.println(String.class.getSimpleName());//返回String
  16. System.out.println(String.class.getName());//返回java.lang.String
  17. System.out.println(int.class.getCanonicalName());//返回int
  18. System.out.println(int.class.getSimpleName());//返回int
  19. System.out.println(int.class.getName());//返回int
  20. Apple a1=new Apple();
  21. Apple a2=new Apple();
  22. List<Apple> appleList=new ArrayList<Apple>();
  23. appleList.add(a1);
  24. appleList.add(a2);
  25. System.out.println(appleList.getClass().getCanonicalName());//返回java.util.ArrayList
  26. System.out.println(appleList.getClass().getSimpleName());//返回ArrayList
  27. System.out.println(appleList.getClass().getName());//返回java.util.ArrayList
  28. }
  29. }

 

 

实际应用: hql的泛型查询

 

Java代码 收藏代码
  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. }  
分享到:
评论

相关推荐

    getName()和getSimpleName()的区别1

    getName()和getSimpleName()的区别1

    java Class.getSimpleName() 详解及用法

    在Java编程语言中,`Class` 类是所有类的顶级抽象类,它提供了与类、接口、数组等相关的各种信息。`getSimpleName()` 是 `Class` 类的一个方法,用于获取类的简单名称,即不包括包名的部分。这个方法在很多场景下都...

    Java反射技术栈1

    ongbin.bean.User”); Method method=clazz.getMethod(“方法名”, 参数类型的 Class 对象); //调用方法,无返回值 method....在理解其原理和应用场景的基础上,适当使用反射可以极大地提升程序的灵活性和可扩展性。

    Android使用ActivityLifecycleCallback判断程序前后台实例

    在Android开发中,Activity是应用程序的基本构建块,它负责与用户进行交互。了解并管理Activity的生命周期对于优化应用性能和用户体验至关重要。`ActivityLifecycleCallback`是Android系统提供的一种机制,用于全局...

    Spring Boot应用事件监听示例详解

    * ApplicationReadyEvent:在任何应用和command-line runner被调用的时候发送,它意味着应用可以接受请求了。 * ApplicationFailedEvent:在启动时有异常的时候发送。 2. 如何监听这些事件 监听这些事件可以通过两...

    spring aop使用教程

    System.out.println("Before " + joinPoint.getTarget().getClass().getSimpleName() + "." + joinPoint.getSignature().getName()); } @After("execution(* *(..))") public void doAfter(JoinPoint joinPoint...

    关于Java的反射机制-你需要理解这些.docx

    - `getName()`和`getSimpleName()`分别用于获取类的全名(包括包名)和简单名称(不包括包名)。 - `getMethod(String name, Class&lt;?&gt;... parameterTypes)`用于获取所有公共方法,包括父类继承的公共方法。 - `...

    Java反射学习和反射的应用场景干货都在这里

    总结,Java反射机制为我们提供了强大的动态操作类和对象的能力,广泛应用于框架开发、插件系统、元数据处理、动态代理等诸多领域。熟练掌握反射技术,可以显著提高代码的灵活性和可扩展性,但同时也需要注意反射可能...

    java Reflection 反射机制 反编译

    System.out.println("package " + c.getPackage().getName() + ";\n"); System.out.print(Modifier.toString(c.getModifiers())); System.out.print(" class " + c.getSimpleName()); System.out.print...

    opencv简单应用

    《OpenCV在Android Studio中的简单应用》 OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,它包含了众多图像处理和计算机视觉的算法,适用于Android、iOS、Windows等多种平台。在Android...

    Java 反射常用方法及实例.pdf

    Java 反射机制详解 Java 反射机制是 Java ...反射机制的应用非常广泛,例如在框架、工具、动态代理、AOP 等方面都有广泛的应用。 Java 反射机制是 Java 语言的一个强大功能,可以帮助开发者实现更多的功能和灵活性。

    java反射&权限控制.pdf

    - `getName()`和`getSimpleName()`:获取类的完整名称和简单名称。 此外,`java.lang.reflect`包下的一些关键类,如`Field`、`Constructor`和`Method`,提供了对类的属性、构造器和方法的详细操作。例如,`Field`类...

    java中的反射机制(内含大量实例)

    - **获取类名**:通过`Class.getName()`,`getSimpleName()`或`getCanonicalName()`获取类的全名、简单名或规范名。 - **获取父类**:使用`getSuperclass()`获取父类的Class对象。 - **获取接口**:使用`...

    JAVA反射代码

    - `Reflect.class.getName()`和`Reflect.class.getSimpleName()`分别返回类的全限定名和简单名称。 - `new Reflect().getClass().getName()`通过创建一个`Reflect`类的实例,然后调用`getClass()`方法获取其`Class`...

    自定义Dao,反射实现

    DAO是应用程序中的一个接口或抽象类,它提供了对数据存储的抽象,使得业务逻辑层可以不直接与数据库交互,而是通过DAO进行。这有助于解耦业务逻辑和数据访问逻辑,使得系统更加灵活,易于测试和维护。 自定义Dao时...

    spring入门学习-6、AOP几种配置方式详解.pdf

    基于代理的经典 AOP 更适合于 Spring 早期版本的应用场景,而 Schema-based 的 AOP 和 @AspectJ 注解驱动的 AOP 更符合现代应用的需求,特别是在需要快速开发和维护的情况下。开发者可以根据实际项目需求选择合适的 ...

    Java反射机制的学习

    - 获取类的名称:`getName()`和`getSimpleName()` - 获取类的修饰符(public, private等):`getModifiers()` - 获取类的超类:`getSuperclass()` - 获取接口:`getInterfaces()` - 获取类的构造器:`...

    java高级应用简笔

    ### Java高级应用知识点详解 ...总结,Java高级应用包括自定义注解、反射机制、动态编译、字节码操作等多个方面,这些技术不仅能够提升程序的灵活性和扩展性,还能帮助开发者更好地理解和控制程序的底层行为。

    示例代码:java spring【AnnotationMetadata】的简单使用例子

    在这个简单的使用例子中,我们将深入探讨如何使用`AnnotationMetadata`来解析类上的注解,这对于理解Spring的组件扫描和自动配置机制至关重要。 首先,`AnnotationMetadata`接口位于`org.springframework.core.type...

    Java学习之反射机制及应用场景介绍

    Java反射机制是Java编程语言中的一个强大特性,它允许程序在运行时检查和操作类、对象、方法和字段。在Java中,反射机制是通过`java.lang.Class`、`java.lang.reflect.Constructor`、`java.lang.reflect.Field`和`...

Global site tag (gtag.js) - Google Analytics