首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用参数传递Callable<T>

使用参数传递Callable<T>
EN

Stack Overflow用户
提问于 2013-02-24 23:51:14
回答 2查看 3.4K关注 0票数 1

我正在编写一个Java应用程序,其中包含一个从用户钱包中扣除钱的通用模块。

所以这个类如下:

代码语言:javascript
复制
public class BuyGiftForMyselfCallable implements Callable<Boolean> {

private String username;
private long coins;

public BuyGiftForMyselfCallable(final String username,final long coins) {
    this.username=username;
    this.coins=coins;
}

@Override
public Boolean call() throws Exception {

    ...
    }

我想把这个类传递给一个不知道BuyGiftForMyselfCallable的函数。它只知道Callable!

因此,我有以下几点:

代码语言:javascript
复制
function receiver(Callable<*> func) {
...
} 

在这个函数中,我如何创建一个类的新实例,并将参数传递给构造函数,而不知道类的来源?

EN

回答 2

Stack Overflow用户

发布于 2013-02-24 23:54:03

在这里,Callable查找的不是BuyGiftForMyselfCallable的类型,而是它的返回值:Boolean

所以使用Callable<Boolean>,即:

代码语言:javascript
复制
public void receive(Callable<Boolean> func){
  ...
}

此外,您不会在此函数中创建可调用类的实例,而是在其他地方创建它们(构造函数和所有),然后将它们传递到此函数中。

票数 0
EN

Stack Overflow用户

发布于 2013-02-25 00:08:50

您可以使用反射example hereinstanceof来找出实现类是什么,然后使用它做任何您想做的事情。但正如@vikingsteve在评论中提到的那样,这可能是一种不同的方法,你应该使用它来完全避免这样做的必要性

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15053474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档