`

getCanonicalName getSimpleName getName 区别与应用

阅读更多

接口:

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

    getName()和getSimpleName()的区别1

    java Class.getSimpleName() 详解及用法

    主要介绍了java Class.getSimpleName() 详解及用法的相关资料,需要的朋友可以参考下

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

    bench-simple-name

    然后计算String类的非限定名称: 使用Class::getSimpleName 使用Class::getName并计算子字符串如何编译该项目使用 Maven 2+,所以只需执行以下操作: mvn clean package怎么跑 java -jar target/benchmarks.jar结果...

    Qachee:Qachee 是一个通用的缓存系统,专门用于 Android 应用程序

    卡奇 Qachee 是一个通用的缓存系统,专门用于 Android 应用程序。 它只是一个带有策略过期和许多有用方法的 LRU 内存缓存。说明 - Maven 中心在你的 build.gradle 中添加这个库: dependencies { compile ' ...

    APPFORPHONEAAA

    private static String TAG = TestActivity.class.getSimpleName(); private HashMap, String&gt; infos = new HashMap, String&gt;(); @ViewInject(R.id.btn) private Button btn; @ViewInject(R.id.sql_btn) ...

    java反射JAVA REFLECT (java 反射)

    |-取得全类名:public String getName() |-只取类名: public String getSimpleName() - 类所继承的父类; |-public Class&lt;? super T&gt; getSuperclass() - 类所实现的接口。 |-public Class&lt;?&gt;[] ...

    AndroidNavigator

    Android导航 使用POJO代替“活动”和/或“片段”来... getSimpleName(); /* * View injection with ButterKnife. * Injected views will be automatically removed and re-injected on configuration changes */

    SharedPreferencesUtil.java

    安卓工具类SharedPreferencesUtil public static boolean putData(String key, Object value) { boolean result; SharedPreferences.Editor editor = sp.edit();... String type = value.getClass().getSimpleName();

    已废弃资源,demo不必下载,描述中有解决方案

    已废弃,大家不必下载了。 实践中是这么使用的: messageClass.getSimpleName().hashCode() 通过消息的名字计算hashCode是比较容易拓展的方式,前后端通信都很方便

    Android利用WindowManager生成悬浮按钮及悬浮菜单

    360手机卫士的内存球其实就是一个没有画面的应用程序,整个应用程序的主体是一个Service。我们的程序开始以后,启动一个service,同时关闭activity即可: public class MainActivity extends Activity { private ...

    RQrCodeDemo:个人认为开源二维码扫描封装库中,加快的。请随手点个星。谢谢!

    很多同学不知道zxing和zbar的区别这里zbar一下: zbar快,支持的格式少。 zxing慢,支持的格式多。 DecodeHandler类为已下内容就可以实现zbar和zxing交替识别二维码。 final class DecodeHandler extends Handler...

    Spring中Scope为Request和Session的Bean了.docx

    首先定义一个简单的类 import lombok.Getter; import lombok.Setter; @Getter @Setter public class HelloMessageGenerator { ... return getClass().getSimpleName() + "@" + Integer.toHexString(hashCode()); } }

    AopTracker:AopTracker

    在AOP(AspectJ),注释和反射上进行事件跟踪的应用程序 如何使用? public class MainActivity extends AppCompatActivity implements View . OnClickListener , TextWatcher { public static final String TAG ...

    day021-反射和注解笔记和代码.rar

    Class 类的实例表示正在运行的 Java 应用程序中的类和接口; 枚举是一种类,注解(指的是注解Annotation)是一种接口; 每个数组都是 Class字节码类中的一个具体 对象 基本的 Java 类型(boolean、byte、...

    Android Studio用genymotion运行后小图标无法显示怎办?

    提出问题 我做的是一个通讯录,用到了选项菜单,每一个菜单项左边我都添加了一个小图标,运行后发现没有显示出来。 解决方案 ... if(menu.getClass().getSimpleName().equalsIgnoreCase(MenuBuilder)){

    Android GPS获取当前经纬度坐标

    APP中可能会遇到一种需求,就是将当前所在位置的坐标传到服务器上,今天我提供三种途径去获取经纬度坐标信息,... private static final String TAG = MainActivity.class.getSimpleName(); private double latitude =

    Android Studio用genymotion运行后小图标无法显示问题

    提出问题 我做的是一个通讯录,用到了选项菜单,每一个菜单项左边我都添加了一个小图标,运行后发现没有显示出来。... if(menu.getClass().getSimpleName().equalsIgnoreCase(MenuBuilder)){ try {

    geomesa-geospark:整合Geomesa和Geospark

    按照建议进行操作时Catalog.expressions.foreach(f =&gt; FunctionRegistry.builtin.registerFunction("geospark_" + f.getClass.getSimpleName.dropRight(1), f))Catalog.aggregateExpressions.foreach(f =&gt; spa

Global site tag (gtag.js) - Google Analytics