首页 > 解决方案 > 将对象作为参数传递并获取对象作为回报

问题描述

我有如下所示的代码,最后我展示了当用户传递字符串参数时如何调用它,他将接收字符串参数,我的问题是有人可以告诉我用户将如何调用我的代码通过将对象类型作为参数传递

下面是界面

interface applyBuisnessRule<T> {
    public T execute(String jobCode) throws Exception;
}

下面是类

class CardvaletImpl<T> implements applyBuisnessRule<T> {
    private static final String Success = null;

    public T execute(String jobCode) throws Exception {
        T result = null;
         // put your logic and populate result here. I believe you are not going to return Success every time as it String
        return result;
    }
}

现在这段代码将字符串作为参数传递

CardvaletImpl<String> cardvaletImpl = new CardvaletImpl<>();
String result = cardvaletImpl.execute("JOBCODE");

请告知我如何将对象作为参数传递并获取对象作为回报,就像我在上面对字符串的情况所做的那样

还请告知我怎样才能使下面的类也一样通用,因为这是调用我上面的类的上下文类

public class BuisnessRuleContext {



    private  Object Object = null;
    private applyBuisnessRule buisnessRuleName;

    public void setAbr(applyBuisnessRule abr) {
        this.buisnessRuleName = abr;
    } 

    //use the strategy
      public Object applyBuisnessRule(String jobcode) {

            try {
                Object = buisnessRuleName.execute(jobcode);
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        return Object;
      }

}

标签: java

解决方案


如果您想要与参数相同类型的对象:

interface ApplyBusinessRule<T> {
    public T execute(T jobCode) throws Exception;
}

*注意更正的接口名称。

如果您想要不同类型的对象作为参数:

interface ApplyBusinessRule<T, R> {
    public R execute(T jobCode) throws Exception;
}

这类似于 Java 8 定义Function接口的方式:

@FunctionalInterface
public interface Function<T, R> {
    R apply(T t);
}

要了解更多信息,请阅读Java™ 教程


推荐阅读