【问题标题】:i want to have a specific array list for an object as a class attribute java [closed]我想要一个对象的特定数组列表作为类属性java [关闭]
【发布时间】:2022-01-06 09:49:18
【问题描述】:

我正在尝试创建一个包含 10 个成员的类数组

package localpackage;

import localpackage.Class;
public class School {
    int code;
    String name;
    Class[] classes = new Class[10];
    public School(int _code, String _name, Class _classes[]){
        code = _code;
        name = _name;
        classes = _classes;
    }
}

【问题讨论】:

  • 我希望我的构造函数只接受 10 个列表
  • 只是提示java命名约定不建议在变量stackoverflow.com/questions/20677249/…之前使用“_”
  • @javi3y 再次:你的问题是什么?如果您不想要其他参数,请删除它们。如果您希望数组的大小正好为 10,如果它有任何其他大小,则抛出异常
  • 这是我第一次写java代码对不起我不知道我不应该这样做
  • 所以如果我理解正确,你想在构造函数中确保数组 classes[] 的长度为 10 ?

标签: java arrays class


【解决方案1】:

您可以使用 ArrayList 并定义您的 10 个项目:

     List<Integer> arr = new ArrayList<>();
        arr.add(1);
        arr.add(2);
        arr.add(3);
        arr.add(4);
        arr.add(5);
        arr.add(6);
        arr.add(7);
        arr.add(8);
        arr.add(9);
        arr.add(10);

或来自数组:

         ArrayList<String> gfg = new ArrayList<String>(
            Arrays.asList(1,2,3,4,5,6,7,8,9,10));

或者使用 nCopy :

List<Integer> list = new ArrayList<Integer>(Collections.nCopies(10, new ItemsToCreate());

或者你可以使用 for 循环

How can I initialize an ArrayList with all zeroes in Java?

【讨论】:

  • 这可能对他确保他可以传递最小长度的数组很有用,但是,他问的是如何强制传递给构造函数的变量具有最小长度。
  • 哦,我没看到。无论如何,希望它会有所帮助。
【解决方案2】:

您似乎想确保构造函数中变量的最小大小。 看看这里,你会找到你需要的:

set minimum size of a variable array in the constructor

要在此处命名一些解决方案,您可以直接使用以下内容进行检查:

    if (name.length() < 12){
        throw new IllegalArgumentException("name must have at least 12 characters");
    }

或者您可以将检查移至单独的方法并从构造函数中调用它。

最后,你可以使用如下注解:

class Kingdom {
    @MinLength(12)
    private String name;

    ...
}

但是你需要自己创建 Annotation 类并实现行为。

【讨论】:

    猜你喜欢
    • 2021-09-16
    • 2023-02-07
    • 2013-10-18
    • 2019-03-10
    • 2011-03-18
    • 2013-01-06
    • 1970-01-01
    • 2021-07-19
    • 1970-01-01
    相关资源
    最近更新 更多