在Web应用程序中使用反射是一个好主意吗?

阿罗帕塔克

我已经在下面的代码中进行了开发,旨在消除其他情况,以便使代码的循环复杂度降低。为此,我使用了反射api并编写了将条件作为参数的方法,并在条件名称的基础上调用了相应的方法。这很好用,我想知道在Web应用程序中使用反射(此代码)是个好主意,这样我就不必检查条件了。

例如,在下面的代码中,我们有不同的方法,其前缀状态为ex:stateSUBMIT,stateWithdraw等。我们可以通过仅传递“ SUBMIT”来调用stateSUBMIT方法。

public class Participate {

    public String execute(String methodName) {

        String st = null;
        try {

            Method method = this.getClass().getDeclaredMethod(
                    "state" + methodName);
            method.invoke(this);

        } catch (Exception e) {
            e.printStackTrace();
        }
        return st;
    }

    public void stateSUBMIT() {
        System.out.println("in SUBMIT");
    }

    public void stateWithdraw() {
        System.out.println("in Withdraw");
    }

    public void state() {
        System.out.println("in state ");
    }

    public void statenull() {
        System.out.println("in null ");
    }

    public static void main(String[] args) {

        Participate p = new Participate();
        p.execute("SUBMIT");
    }
}
克里斯托弗

这是有效的代码,但无需任何反射即可实现。

第一步:定义一个接口

public interface Command {
    public void execute();
}

第二步:创建具体实现

public class StateCommand implements Command {
    public void execute() {
        // Your code.
    }
}

第三步:将这些集合添加到您的原始课程中

private Map<String, Command> commands;

第四步:填充

public MyClass() {
    commands = new HashMap<String, Command>();
    commands.put("state", new StateCommand());
}

获取该类并执行

public String callMethod(String name) {
    Command command = commands.get(name);
    if(command != null) {
        command.execute();
    }
}

这只是使用反射的一种相对简单的替代方法,应将其视为万不得已的方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

开发两个单独的节点应用程序来提供Web服务并使用Web Service在浏览器上呈现它是一个好主意吗?

来自分类Dev

使用全局变量在Go Web应用程序中存储数据库句柄是一个好主意吗?

来自分类Dev

在AngularJS应用程序中创建多个ng-app是一个好主意吗?

来自分类Dev

对于移动应用程序中的会话管理,cookie是一个好主意吗?

来自分类Dev

使用ElasticSearch作为替代数据存储,同时应用程序同时更新数据库和ES(在Kafka的帮助下)。这是一个好主意吗?

来自分类Dev

在Dart Web服务器中使用同步文件系统方法不是一个好主意吗?

来自分类Dev

通过硒自动化angular7应用程序是一个好主意

来自分类Dev

有一个单独的socket.io.js文件副本,而不是依赖socket.io应用程序提供的文件,这是一个好主意吗?

来自分类Dev

在单元测试中使用依赖注入对象不是一个好主意吗?

来自分类Dev

在单元测试中使用与被测系统中相同的常量是一个好主意吗?

来自分类Dev

在rails中使用has_one嵌套属性是一个好主意吗?

来自分类Dev

在动作助手中使用browserhostory.push是一个好主意吗?

来自分类Dev

一个好主意是为此使用复合模式吗?

来自分类Dev

使用NTFS压缩是一个好主意吗?

来自分类Dev

一个好主意是为此使用复合模式吗?

来自分类Dev

事件源,带有Axon服务器/框架的CQRS-事件为整个应用程序提供资源是一个好主意吗?

来自分类Dev

在ASP MVC视图中使用反射是个好主意吗?

来自分类Dev

在迁移期间在同一应用程序中同时使用Angular 1.x和2.0是个好主意吗?

来自分类Dev

在整个应用程序中缓存NSDateformatter是个好主意吗?

来自分类Dev

读取NoSQL DB时在移动应用程序中缓存数据是个好主意吗?

来自分类Dev

java 6调用string intern方法在应用程序启动时是个好主意吗?

来自分类Dev

在应用程序内部控制通知(声音,新提交的内容和徽章)是个好主意吗

来自分类Dev

在开发过程中使用docker运行前端构建过程不是一个好主意吗?

来自分类Dev

对AJAX Web应用程序使用REST令牌认证的好主意?

来自分类Dev

安装属性驱动程序是一个好主意吗?

来自分类Dev

在14.04中安装nvidia 361驱动程序是一个好主意吗?

来自分类Dev

在Web服务URL中使用加密的数据库ID代替UUID是个好主意吗?

来自分类Dev

提取大量String文字是一个好主意吗?

来自分类Dev

组合实例VBO是一个好主意吗?

Related 相关文章

  1. 1

    开发两个单独的节点应用程序来提供Web服务并使用Web Service在浏览器上呈现它是一个好主意吗?

  2. 2

    使用全局变量在Go Web应用程序中存储数据库句柄是一个好主意吗?

  3. 3

    在AngularJS应用程序中创建多个ng-app是一个好主意吗?

  4. 4

    对于移动应用程序中的会话管理,cookie是一个好主意吗?

  5. 5

    使用ElasticSearch作为替代数据存储,同时应用程序同时更新数据库和ES(在Kafka的帮助下)。这是一个好主意吗?

  6. 6

    在Dart Web服务器中使用同步文件系统方法不是一个好主意吗?

  7. 7

    通过硒自动化angular7应用程序是一个好主意

  8. 8

    有一个单独的socket.io.js文件副本,而不是依赖socket.io应用程序提供的文件,这是一个好主意吗?

  9. 9

    在单元测试中使用依赖注入对象不是一个好主意吗?

  10. 10

    在单元测试中使用与被测系统中相同的常量是一个好主意吗?

  11. 11

    在rails中使用has_one嵌套属性是一个好主意吗?

  12. 12

    在动作助手中使用browserhostory.push是一个好主意吗?

  13. 13

    一个好主意是为此使用复合模式吗?

  14. 14

    使用NTFS压缩是一个好主意吗?

  15. 15

    一个好主意是为此使用复合模式吗?

  16. 16

    事件源,带有Axon服务器/框架的CQRS-事件为整个应用程序提供资源是一个好主意吗?

  17. 17

    在ASP MVC视图中使用反射是个好主意吗?

  18. 18

    在迁移期间在同一应用程序中同时使用Angular 1.x和2.0是个好主意吗?

  19. 19

    在整个应用程序中缓存NSDateformatter是个好主意吗?

  20. 20

    读取NoSQL DB时在移动应用程序中缓存数据是个好主意吗?

  21. 21

    java 6调用string intern方法在应用程序启动时是个好主意吗?

  22. 22

    在应用程序内部控制通知(声音,新提交的内容和徽章)是个好主意吗

  23. 23

    在开发过程中使用docker运行前端构建过程不是一个好主意吗?

  24. 24

    对AJAX Web应用程序使用REST令牌认证的好主意?

  25. 25

    安装属性驱动程序是一个好主意吗?

  26. 26

    在14.04中安装nvidia 361驱动程序是一个好主意吗?

  27. 27

    在Web服务URL中使用加密的数据库ID代替UUID是个好主意吗?

  28. 28

    提取大量String文字是一个好主意吗?

  29. 29

    组合实例VBO是一个好主意吗?

热门标签

归档