转自:http://blog.csdn.net/wirelessqa/article/details/8151889
接口:
- package com.test;
- public interface Fruit {
- }
一个实现类:
- package com.test;
- public class Apple implements Fruit {
- }
基本测试类:
- 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的泛型查询
- 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();
- }
- }
相关推荐
getName()和getSimpleName()的区别1
在Java编程语言中,`Class` 类是所有类的顶级抽象类,它提供了与类、接口、数组等相关的各种信息。`getSimpleName()` 是 `Class` 类的一个方法,用于获取类的简单名称,即不包括包名的部分。这个方法在很多场景下都...
ongbin.bean.User”); Method method=clazz.getMethod(“方法名”, 参数类型的 Class 对象); //调用方法,无返回值 method....在理解其原理和应用场景的基础上,适当使用反射可以极大地提升程序的灵活性和可扩展性。
在Android开发中,Activity是应用程序的基本构建块,它负责与用户进行交互。了解并管理Activity的生命周期对于优化应用性能和用户体验至关重要。`ActivityLifecycleCallback`是Android系统提供的一种机制,用于全局...
* ApplicationReadyEvent:在任何应用和command-line runner被调用的时候发送,它意味着应用可以接受请求了。 * ApplicationFailedEvent:在启动时有异常的时候发送。 2. 如何监听这些事件 监听这些事件可以通过两...
System.out.println("Before " + joinPoint.getTarget().getClass().getSimpleName() + "." + joinPoint.getSignature().getName()); } @After("execution(* *(..))") public void doAfter(JoinPoint joinPoint...
- `getName()`和`getSimpleName()`分别用于获取类的全名(包括包名)和简单名称(不包括包名)。 - `getMethod(String name, Class<?>... parameterTypes)`用于获取所有公共方法,包括父类继承的公共方法。 - `...
总结,Java反射机制为我们提供了强大的动态操作类和对象的能力,广泛应用于框架开发、插件系统、元数据处理、动态代理等诸多领域。熟练掌握反射技术,可以显著提高代码的灵活性和可扩展性,但同时也需要注意反射可能...
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在Android Studio中的简单应用》 OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,它包含了众多图像处理和计算机视觉的算法,适用于Android、iOS、Windows等多种平台。在Android...
Java 反射机制详解 Java 反射机制是 Java ...反射机制的应用非常广泛,例如在框架、工具、动态代理、AOP 等方面都有广泛的应用。 Java 反射机制是 Java 语言的一个强大功能,可以帮助开发者实现更多的功能和灵活性。
- `getName()`和`getSimpleName()`:获取类的完整名称和简单名称。 此外,`java.lang.reflect`包下的一些关键类,如`Field`、`Constructor`和`Method`,提供了对类的属性、构造器和方法的详细操作。例如,`Field`类...
- **获取类名**:通过`Class.getName()`,`getSimpleName()`或`getCanonicalName()`获取类的全名、简单名或规范名。 - **获取父类**:使用`getSuperclass()`获取父类的Class对象。 - **获取接口**:使用`...
- `Reflect.class.getName()`和`Reflect.class.getSimpleName()`分别返回类的全限定名和简单名称。 - `new Reflect().getClass().getName()`通过创建一个`Reflect`类的实例,然后调用`getClass()`方法获取其`Class`...
DAO是应用程序中的一个接口或抽象类,它提供了对数据存储的抽象,使得业务逻辑层可以不直接与数据库交互,而是通过DAO进行。这有助于解耦业务逻辑和数据访问逻辑,使得系统更加灵活,易于测试和维护。 自定义Dao时...
基于代理的经典 AOP 更适合于 Spring 早期版本的应用场景,而 Schema-based 的 AOP 和 @AspectJ 注解驱动的 AOP 更符合现代应用的需求,特别是在需要快速开发和维护的情况下。开发者可以根据实际项目需求选择合适的 ...
- 获取类的名称:`getName()`和`getSimpleName()` - 获取类的修饰符(public, private等):`getModifiers()` - 获取类的超类:`getSuperclass()` - 获取接口:`getInterfaces()` - 获取类的构造器:`...
### Java高级应用知识点详解 ...总结,Java高级应用包括自定义注解、反射机制、动态编译、字节码操作等多个方面,这些技术不仅能够提升程序的灵活性和扩展性,还能帮助开发者更好地理解和控制程序的底层行为。
在这个简单的使用例子中,我们将深入探讨如何使用`AnnotationMetadata`来解析类上的注解,这对于理解Spring的组件扫描和自动配置机制至关重要。 首先,`AnnotationMetadata`接口位于`org.springframework.core.type...
Java反射机制是Java编程语言中的一个强大特性,它允许程序在运行时检查和操作类、对象、方法和字段。在Java中,反射机制是通过`java.lang.Class`、`java.lang.reflect.Constructor`、`java.lang.reflect.Field`和`...