当前位置: 首页 > 知识库问答 >
问题:

使用不同的类输入重载方法[关闭]

狄睿
2023-03-14

我在androidstudio和java一起工作。

我需要从一个类的列表中访问并更改一个特定的值。为了做到这一点,我以类的形式为函数提供了活动的上下文。这我有三个不同版本的这个类,它们在使用相同函数的UI上都有微小的差异。最初,我只是用不同的类输入重载函数三次,但我想看看是否能以某种方式将其压缩为一个函数。谷歌似乎认为我需要一个界面,但我不知道如何解决我的问题。

我已经在下面的代码中粘贴了基本问题。我现在看到的是其中两个,副本中的活动有一个不同的BigObject。我想要的是某种程度上只有一个功能。

public SubObject example (BigObject activity) {

                int number=0;
                for (int x = 0; x<activity.LIST.size(); x++) {
                    if (activity.LIST.get(x).getnumber()==tag) {
                       number=x;
                    }
                 }
                return activity.LIST.get(number);
}

我尝试过将一个接口变成一个超类,以及instanceOff if和Switch语句的几种变体,但都不起作用。我不确定我想要的是否可能,但看起来我复制了很多代码,我想知道我是否能清理一些代码。如果我只需要坚持标准的重载方法,这是一个很好的答案

共有1个答案

翟新
2023-03-14
public abstract static class MyObject {
    protected List<SubObject> LIST = new ArrayList<>();
}

public static class SmallObject extends MyObject {
    
}

public static class BigObject extends MyObject {
    
}

@Nullable
public SubObject example(@NonNull final MyObject activity) {
    for (int i=0; i<activity.LIST.size(); i++) {
        if (activity.LIST.get(i).getnumber() == tag) {
            return activity.LIST.get(i)
        }
    }
    return null;
}
 类似资料:
  • 但是同时使用不同签名和不同返回类型的重载方法有什么问题呢?为什么这会产生错误?

  • 我是一名高中生,我自学了一点Java。我的老师问你是否可以写两个参数互换但相同的方法。例如: 我说是的,老师说我不知道超载是什么意思,但我测试过了,它工作了,然后她说“JDK有一个错误”,她对我发火了。 我需要一个超级完整的答案。

  • 而输出是 谁能详细说明一下1380605909318和61341428160000之间的区别?

  • 问题内容: 当与MySQL数据库连接时,我有几种方法可以做同样的事情,保存或加载不同类型的参数。目前,我对每种类型都有不同的方法。如何合并这些方法,以便它们支持不同的类型? 下面是两个非常相似但使用不同类型的方法的示例: 请注意,在该示例中,类型均为数字。在类型完全不同的情况下(例如int和String),如何避免使用近乎重复的方法? 问题答案: 您可以在此处应用 策略 模式。 …

  • 想象一下下面的scanario:我有一个程序,它要求输入一个整数,然后是一个String输入。 根据aobe代码,我没有机会输入姓名。因此,通常我会声明2个扫描仪对象,如下所示: 我的问题是:有必要声明多个扫描仪对象来接受不同类型的输入吗??我这样做是正确的吗? 我已经考虑这个问题很多年了。(SO中的几个问题提到了多扫描仪,但他们的问题只使用了一个扫描仪对象,所以我今天问这个问题。)

  • …我说是的,老师说我不知道重载是什么意思,但我测试了它,然后她说“JDK有一个bug”,她对我很生气。 请我需要一个超级和完整的问题。