JAVA根据类名动态调用执行方法demo

 

 

IRuleModel.java

复制代码
/**
 * 接口类
 * @author*/
public interface IRuleModel {

    /**
     * 执行的方法
     * @param paramString
     * @return
     */
    String execute(String paramString);
}
复制代码

 

FilterRuleModel.java

复制代码
import org.apache.commons.lang3.StringUtils;

/**
 * 具体实现
 * 这里截取去第二个字符,demo
 * @author .
 */
public class FilterRuleModel implements  IRuleModel{
    @Override
    public String execute(String paramString) {
        if (StringUtils.isBlank(paramString)) {
            return null;
        }
        String[] split = paramString.split(",");
        if (split.length>0) {
            return split[1];
        }
        return null;
    }
}
复制代码

 

 

SplitRuleModel.java

复制代码
import org.apache.commons.lang3.StringUtils;

/**
 * 具体实现
 * 这里截取取第三个demo
 * @author .
 */
public class SplitRuleModel  implements  IRuleModel{
    @Override
    public String execute(String paramString) {
        if (StringUtils.isBlank(paramString)) {
            return null;
        }
        String[] split = paramString.split(",");
        if (split.length>0) {
            return split[2];
        }
        return null;
    }
}
复制代码

 

 

执行方法

    public static void main(String[] args) throws Exception {
        ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
        Class<?> ruleClass = contextClassLoader.loadClass("com.example.demo.rule.FilterRuleModel");
        IRuleModel ruleModelInstance = (IRuleModel)ruleClass.newInstance();
        System.out.println(ruleModelInstance.execute("1,2,3"));
    }

 

posted @   yvioo  阅读(198)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2020-05-15 JS监控浏览器窗口是否活动,最小化操作
点击右上角即可分享
微信分享提示