gpt4 book ai didi

java - 设置类字段,然后在方法中修改它们

转载 作者:行者123 更新时间:2023-12-02 09:23:03 24 4
gpt4 key购买 nike

我不经常编写java,当我这样做时通常会扩展其他代码,所以我对这个问题的基本性质表示歉意。我有一个用于测试另一个应用程序的类。此类中的每个方法都是单独的测试。这个类有数百个测试。随着此类的发展,每个新方法都被克隆,因此对整体设计没有太多的远见。我正在尝试重构此类,以便使其更易于维护。

所以对于这个问题 - 每个方法都有一个填充 2 个字符串数组的代码块。数组 1 是您想要打开的内容的列表。数组 2 是您想要删除的内容的列表。这两个数组作为 parms 传递到另一个方法中。问题是,如果你创建一个新的“你想要打开/关闭的东西”,你必须在每个方法中设置它。我想将 array1 和 array2 移动到属性。请参阅下面的代码示例

Public class MyClass{
String[] OnThings = {"Thing1", "Thing2"}
String[] OffThings = {"Thing3"}
}

protected void Test1{
/**Below method iterates both arrays and turns things on or off**/
turnThingsOnOrOff(OnThings, OffThings)
/**Do a bunch of testing here**/
}

protected void Test2{
/**This particular test I want to turn off Thing 1**/
OnThings.Remove{"Thing1"}
OffThings.Add{"Thing1"}
turnThingsOnOfOff(OnThings, OffThings)
/**Do a bunch of testing here**/
}

由于代码目前已存在,如果您要添加一个新事物(Thing4)并在每次测试中测试它,您必须进入这 100 个方法中的每一个并将其添加到“OnThings”列表中

使用建议的代码,您只需将 Thing4 添加到类属性中一次,它将在所有测试中运行。如果您想关闭一些测试,那么您可以使用 .Add 和 .Remove 修改这些方法。

目前,字符串数组似乎不支持添加或删除

最佳答案

制作onThingsoffThings属性 static因此您将能够在类外使用它们,而无需创建 new每次都反对。

此外,如果您想在数组中添加或删除数据,请使用 ArrayList<String>而不是String[]ArrayLists大小是动态的,可以轻松地添加或删除对象。

这是修改后的代码:-

Public class MyClass{
public static ArrayList<String> OnThings = new ArrayList<String>(Arrays.asList("Thing1", "Thing2"));
public static ArrayList<String> OffThings = new ArrayList<String>(Arrays.asList("Thing3"));
}

protected void Test1{
/**Below method iterates both arrays and turns things on or off**/
turnThingsOnOrOff(MyClass.OnThings, MyClass.OffThings)
/**Do a bunch of testing here**/
}

protected void Test2{
/**This particular test I want to turn off Thing 1**/
OnThings.Remove{"Thing1"}
OffThings.Add{"Thing1"}
turnThingsOnOfOff(MyClass.OnThings, MyClass.OffThings)
/**Do a bunch of testing here**/
}

更多关于ArrayList可以查到here .

关于java - 设置类字段,然后在方法中修改它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58534314/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com