首页 \ 问答 \ 通用方法获取唯一参数并返回唯一参数Java(Generic Method That takes unique parameter and returns unique parameters Java)

通用方法获取唯一参数并返回唯一参数Java(Generic Method That takes unique parameter and returns unique parameters Java)

我有一个要求,函数在哪里采用不同的参数并返回唯一的对象。 所有这些功能执行相同的操作。

即。

public returnObject1 myfunction( paramObject1 a, int a) {
returnObject1 = new returnObject1();
returnObject1.a = paramObject1.a;
return returnObject1;
}

public returnOject2 myfunction( paramObject2 a, int a){
 returnObject2 = new returnObject2();
 returnObject2.a = paramObject2.a;
 return returnObject2;
}

如上所示,这两个函数都执行相同的任务,但它们将不同的参数作为输入并返回不同的对象。

我想尽量减少编写执行相同任务的不同函数。

是否可以为此编写一个通用方法,可以根据对函数的调用替换参数?

paramObject和returnObject基本上是两个具有不同变量的类。 它们彼此无关。

我的目标是我不想做函数重载,因为函数执行几乎相同的工作。 我想有一个功能可以处理不同的输入和不同的返回输出。

我的目标是做这样的事情(如果可能的话):

public static < E > myfunction( T a, int a ) {
  // do work
}

返回类型E和输入T可以保持变化。


I have a requirement where in the function takes different parameters and returns unique objects. All these functions perform the same operation.

ie.

public returnObject1 myfunction( paramObject1 a, int a) {
returnObject1 = new returnObject1();
returnObject1.a = paramObject1.a;
return returnObject1;
}

public returnOject2 myfunction( paramObject2 a, int a){
 returnObject2 = new returnObject2();
 returnObject2.a = paramObject2.a;
 return returnObject2;
}

As you can see above, both the function do the same task but they take different parameters as input and return different objects.

I would like to minimize writing different functions that does the same task.

Is it possible to write a generic method for this that can substitute the parameters based on the call to the function?

paramObject and returnObject are basically two classes that have different variables. They are not related to each other.

My objective is that I do not want to do function overloading since the functions do almost the same work. I would like to have a single function that can handle different input and different return output.

my aim is to do something like this (if possible):

public static < E > myfunction( T a, int a ) {
  // do work
}

The return type E and the input T can keep varying.


原文:https://stackoverflow.com/questions/44951581
更新时间:2019-12-07 13:35

最满意答案

创建interface Foo并在paramObject1paramObject2类中实现此interface 。 现在你的方法应该是这样的:

public Foo myFunction(Foo foo, int a){
    //Rest of the code.
    return foo;
}

Make interface Foo and implement this interface in both paramObject1 and paramObject2 class. Now your method should be look like:

public Foo myFunction(Foo foo, int a){
    //Rest of the code.
    return foo;
}
2017-07-06

相关问答

更多

MVC4:ViewModel(带有radiobuttonlist)在HttpPost之后为空(MVC4: ViewModel (with radiobuttonlist) is empty after HttpPost)

我没有看到表单有如下ID的映射: @Html.HiddenFor(model => model.Id) 每个内部问题集合也应该具有Id,以便与表单一起发布。 因此,对于您可以拥有的每个问题,在表单的foreach循环中: @Html.HiddenFor(model => item.Question.Id) 该模型还具有MultipleChoiceQuestion类型的集合。 对于模型绑定到集合,集合元素的名称应具有带有序数字的name属性,如本文http://haacked.com/arch

如何在同一帐户上设置“Dev repo”(在prod和团队之间)(How to set up a “Dev repo” (between the prod and the team) on the same account)

在git中似乎存在一个基本的误解。 您有一个通过设置组织正确找到的回购。 那很棒。 你和你的开发人员在他们的回购中单独分工。 那也没关系。 现在,如果您是首席开发人员,并且想要了解人们的工作方式,那么您可以在GitHub上的中央组织中组织所有这些。 即开发者发送拉动请求并将它们拉入开发分支,您不必将它们拉入主控。 在您的开发分支中,您可以测试合并的代码,看它是否符合您的需求。 如果您不喜欢它,则不必将其与生产和/或主分支合并。 在git中,你使用分支机构来理清好事和坏事。 你批准的所有东西都合并

Rails范围在规范和控制台中的工作方式不同(Rails scope works different in spec and console)

我发现了它的作用。 当所有记录的编号都为nil时,就会发生这种情况。 如果将最后一个放在作用域的末尾,则返回一个包含所有记录的ActiveRecord :: Relation。 我做了这个回购来说明 这个rails问题得到了很好的解释 为了避免混淆,不要在范围中使用last first或all I found out what it does. It happends when all records have number = nil. If you put last at the end o

如何使用sandbox.paypal获取支付IPN(How to get IPN for payout using sandbox.paypal)

sandbox.paypal中有两种类型的帐户 个人 商业 如果帐户类型为Business,我们可以获得IPN。 我正在寻找IPN,而我的帐户类型是个人的。 我检查了它的商业帐户类型并获得了支付的IPN。 路径是: 个人资料>我的销售工具>即时付款通知 There are two types of accounts in sandbox.paypal personal business We can get IPN if account type is Business. I was looki

NSImage和UIImage提供不同的NSData表示(NSImage and UIImage give different NSData representations)

我最终找到了一种方法来做我想做的事。 ALAssetRepresentation类的getBytes:fromOffset:length:error:方法可用于获取与OS X中的[NSData dataWithContentsOfURL:fileURL]相同的NSData对象。请注意,由于UIImage执行某些处理,因此无法从UIImage执行此操作。在图像上。 这是所请求的功能的样子。 //In iOS -(NSData *) getDataFromALAsset:(ALAsset*)asse

使用Sonatype Nexus OSS进行基于功能的开发(Feature-based development with Sonatype Nexus OSS)

功能分支不应该长寿,因此在许多情况下,您最终根本不会部署。 但是,如果您确实要部署(这是一件好事),那么版本字符串中的分支限定符是最好的方法。 如果使用负责版本更改的脚本自动创建分支,那么根本不会出现错误,并且实际上对您的整体策略非常合理。 添加特定于功能的CI作业(或其中一些)并且可能使用Versions Maven插件,您应该准备好滚动。 Feature branches should not be long lived and therefore in many cases you end

是否可以在c ++中的体系结构等接口中使用动态强制转换(is it possible to use dynamic cast in an interface like architecture in c++)

我担心没有无黑客的方式,你可以做的是向IStorage添加一个virtual Object* getObject() = 0; 并在Container中定义它: Object* getObject() override { return this; } Object* getObject() override { return this; } 。 另一种方式(在我的opitnion中更友好的OOP)将向IStorage添加一个虚拟方法,如: virtual void updateAfterAdd

Joomla:通过ajax获取k2项内容不会增加项目点击量(Joomla: Fetching k2 item content by ajax won't increase item hits)

你是在正确的方向。 关于命中,你还必须考虑缓存。 否则,它仅在禁用缓存时递增。 您可以查看K2组件如何以相同的方式计算命中数。 under com_k2/views/item, there are view.html.php and view.json.php, in view.html.php line 134 // Increase hits counter $model->hit($item->id); while view.json.php doesn't have this line

相关文章

更多

最新问答

更多
  • jsPlumb draggable element javascript函数(jsPlumb draggable element javascript function)
  • MVC4:ViewModel(带有radiobuttonlist)在HttpPost之后为空(MVC4: ViewModel (with radiobuttonlist) is empty after HttpPost)
  • 如何在同一帐户上设置“Dev repo”(在prod和团队之间)(How to set up a “Dev repo” (between the prod and the team) on the same account)
  • 如何在tcl中将eth0配置为发送方udp端口(how to configure eth0 as a sender udp port in tcl)
  • 在main方法中进行更改后传递给构造函数的TreeMap实例的行为是什么(What is the behavior of a TreeMap instance passed into a constructor following changes in main method)
  • 在这个的一些属性不同的颜色(Different color in some properties of this)
  • CURL没有返回任何内容(CURL Not returning anything)
  • MVC5注入依赖于城堡windsor的视图(MVC5 injecting dependency on a view with castle windsor)
  • CakePHP AJAX-Call:发生错误:未定义(CakePHP AJAX-Call: An error occured: undefined)
  • 如何用.aidl扩展名创建文件?(how to create a file with .aidl extension?)
  • 无法获得全尺寸动态WordPress灯箱图像显示(Cannot get full size dynamic WordPress lightbox image to display)
  • 使用Jsoup删除元素不起作用(Removing Element with Jsoup doesn't work)
  • 交叉编译ARM的MongoDB C ++驱动程序。(Cross compiling MongoDB C++ driver for ARM. Cannot find Boost Libraries)
  • ProgressDialog没有关闭(ProgressDialog not closing)
  • 单元测试DB中的JPA插入(Unit testing JPA insertion in the DB)
  • 点击谷歌服务对话框中的更新按钮(Click on update button in check google service dialog)
  • 适用于PhoneGap Build的iOS“缺少必需的57x57图标”(“Missing required 57x57 icon” for iOS on PhoneGap Build)
  • MVC ckeditor post编辑器值内联(MVC ckeditor post editor value inline)
  • Angular 2 Pipe - 无法读取未定义的属性'toString'(Angular 2 Pipe - Cannot read property 'toString' of undefined)
  • 安装引导加载程序(Installing bootloaders)
  • 用于确定最终如何包含头文件的工具(Tool to figure out how a header file is eventually being included)
  • 在将字符串转换为int [duplicate]之前检查字符串是否不是数字(Check if string is not a number before converting it to a int [duplicate])
  • 从脚本构建db2数据库以进行构建验证的工具?(Tools to build db2 database from scripts for build verification?)
  • 在偏移之后向FileOutputStream写一个数字(Write a number to FileOutputStream after an offset)
  • Javascript RegEx仅限数字(无特殊字符)(Javascript RegEx for Numbers Only (no special characters))
  • 我可以在PHP的Linux服务器上运行新的COM(“WScript.Shell”)(Can I run new COM(“WScript.Shell”) on linux servers in PHP)
  • 在Backbone.js中放置与视图不直接相关的代码(例如广告,分析等)的位置?(Where to place code not directly related to a view (such as ads, analytics etc) in Backbone.js?)
  • 适用于Mac和PC的一般开发人员必备软件综合列表[关闭](Comprehensive List of Essential Software for General Developers on Mac and PC [closed])
  • 将语言文本转换为模型(Transformation Language Text to Model)
  • 在控制器中的两个方法之间共享变量?(Sharing variables between two methods in a controller?)