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

组合名称的Java集属性

袁雅逸
2023-03-14

我有个问题。我有以下几门课:

public class Candlestick {
    private double ma5;
    private double ma10;
    private double ma17;

    public void setMA5(double value) {
        this.ma5 = value;
    }

    public void setMA10(double value) {
        this.ma10 = value;
    }

    public void setMA17(double value) {
        this.ma17 = value;
    }
}

那么我还有下面的数组:

public static List<Integer> mas = List.of(5, 10, 17);

现在,在我的代码中有一个for循环,它在mas列表中循环,如下所示:

Candlestick candlestick = new Candlestick();

for (int ma : mas) {
    
    // UPDATE THE CORRECT MA VALUE IN THE CANDLESTICK CLASS
    candlestick.setMA ????

}

但是我需要在循环中更新我当前所在的类的属性。如何按语法构建setma()函数?

共有1个答案

井轶
2023-03-14

你可以利用Java反射。

Candlestick candlestick = new Candlestick();

for (int ma : mas) {
    Method setMaMethod = Candlestick.class.getDeclaredMethod("setMA" + ma, double.class);
    setMaMethod.invoke(candlestick, 1.0);
}

此代码调用setma*并将1.0作为函数参数传递。

 类似资料:
  • 我正在使用Node.js程序将数据插入MongoDB数据库。我已将数据插入到名为“repl-failOver”的集合中。 当我使用Mongo shell并使用< code>show collections列出数据库中的集合时,我能够看到集合“repl-failOver”。 如何从mongoshell为这个集合运行查找命令?

  • 问题内容: 我正在使用依赖于jfreechart(v 1.0.9)的库。 当我尝试运行.jar时,我得到: 我尝试创建LocalizationBundle.properties文件,但是没有做到。我已经检查了CLASSPATH,仍然无法执行。 有任何想法吗? 问题答案: 到目前为止,异常消息详细告知您需要在类路径中包含以下文件之一: 要么 要么 另请参见Sun自己的关于resourcebundle

  • 我的域名名称是3dtopo.com。显然Java不允许包域名以数字开头。 为什么Java反向域名不遵循域名一样的规则?我真的不想把我的包裹命名为com.threedtopo.. 首先,这不是我的域名!任何人都可以自由注册和使用该域名。此外,它是非常尴尬的,不是我的业务名称。 有人有包名建议吗?

  • 我们可以在Cloud Firestore中更改集合的名称吗?我创建了一个包含200个文档的集合。现在我想更改集合的名称。在Firebase控制台中,我找不到执行此操作的方法。 是否可以通过代码或在控制台中更改集合的名称。或者是否可以从Firestore导出文档,创建新集合,然后再次导入这些文档? 请帮忙。

  • 我想动态设置名称属性 table.component.html 表.component.ts

  • 这个问题,在一个例子上解释: 用户指定读取属性“State orProvinceName”。Ldap将其处理为“st”。返回的Searchresult将包含以'st'作为键的key=>值对。如果我查找“state orprovinceName”,这显然是找不到的。我想要那个'st'键--但我不想手动编码替代LDAP字段名称的映射。相关代码部分: 说明:“Found Contact”是SearchR