剑道第一仙

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

java反射和泛型测试

 java反射和泛型测试

复制代码
package com.qsds.test;
import java.lang.reflect.Method;
import com.qr.util.GetFieldOrder;

/**
 * Hello world!
 *
 */
public class App<T> {
    
    public static void main(String[] args) throws Exception {
        //反射测试
        test sff = new test();
        sff.setUsername("aaaaaaaaaaaaaaaaaa");
        reflectTest(sff);
        
        //泛型反射测试
//        test sff = new test();
        sff.setUsername("aaaaaaaaaaaaaaaaaa");
        App<test> ap = new App<test>();
        ap.reflectTest2(sff);
    }

    //反射测试
    public static void reflectTest(test sff) throws Exception {
        System.out.println("-----------");
        Method[] ms = test.class.getMethods();
        System.out.println("-----------");
        for (Method m : ms) {
            GetFieldOrder gf = m.getAnnotation(GetFieldOrder.class);
            if (gf != null && gf.value() != 0) {
                String str = (String)m.invoke(sff);
                System.out.println("++++++++++"+gf.value()+str);
            }
        }
    }
    
    //泛型反射测试
    public  void reflectTest2(T t) throws Exception {
        System.out.println("-----------");
        Method[] ms = t.getClass().getMethods();
        System.out.println("-----------");
        for (Method m : ms) {
            GetFieldOrder gf = m.getAnnotation(GetFieldOrder.class);
            if (gf != null && gf.value() != 0) {
                String str = (String) m.invoke(t);
                System.out.println("++++++++++" + gf.value() + str);
            }
        }
    }
}

class test{
    private String username;
    private String password;

    public void setUsername(String username) {
        this.username = username;
    }

    @GetFieldOrder(1)
    public String getUsername() {
        return username;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @GetFieldOrder(2)
    public String getPassword() {
        return password;
    }
}
复制代码

 

复制代码
package com.qr.util;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface GetFieldOrder {
    int value();
}
复制代码

 

posted on   剑道第一仙  阅读(10)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示