⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 genericsutilstest.java

📁 anewssystem新闻发布系统集成使用了spring hibernate freemarker EXTJS等开源框架 可以作为学习参考
💻 JAVA
字号:
package anni.core.utils;

import java.lang.reflect.*;

import junit.framework.TestCase;


/**
 * @author calvin
 */
public class GenericsUtilsTest extends TestCase {
    public static final String STR = "test";

    /**
     * 测试GenericsUtils的各种情况
     */
    public void testGetGenericClass() {
        // 测试取出第1,2个范型类定义
        assertEquals(TestBean.class,
            GenericsUtils.getSuperClassGenricType(
                TestActualGenericsBean.class));
        assertEquals(TestBean2.class,
            GenericsUtils.getSuperClassGenricType(
                TestActualGenericsBean.class, 1));

        // 数组越界的时候返回Object.class
        assertEquals(Object.class,
            GenericsUtils.getSuperClassGenricType(
                TestActualGenericsBean.class, 2));

        // 测试无范型定义时返回Object.class
        assertEquals(Object.class,
            GenericsUtils.getSuperClassGenricType(
                TestActualGenericsBean2.class));

        // enum
        assertEquals(TestEnumEnum.class,
            GenericsUtils.getSuperClassGenricType(TestEnum.class));

        // interface
        assertEquals(Runnable.class,
            GenericsUtils.getSuperClassGenricType(TestInterface.class));
    }

    /**
     * 带范型定义的父类
     */
    public class TestGenericsBean<T, T2> {
    }

    /**
     * T1用到的类
     */
    public class TestBean {
    }

    /**
     * T2用到的类
     */
    public class TestBean2 {
    }

    /**
     * 定义了父类范型的子类
     */
    public class TestActualGenericsBean extends TestGenericsBean<TestBean, TestBean2> {
    }

    /**
     * 没有定义父类范型的子类
     */
    public class TestActualGenericsBean2 extends TestGenericsBean {
    }

    public class TestEnum extends TestGenericsBean<TestEnumEnum, TestEnumEnum> {
    }

    public class TestInterface extends TestGenericsBean<Runnable, Runnable> {
    }
    enum TestEnumEnum {
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -