爪哇 - 自定义类型嵌套类

Pinco:

我再次请求技术支持。

我需要定义一个类中的自定义类型,我已经做了这样的:

public class MainClass {
    private class CustomType {
        public byte[] varA;
        public int varB;

        public CustomType() {
            varA = new byte[3];   
            varB = 13;
        }
    }

    private CustomType[] myArray;


    public MainClass() {
        myArray = new CustomType[1024]
        System.out.println(this.CustomType[0].varB);
    }
}

当我运行它抛出一个NullPointerExceptionSystem.out.println(this.CustomType[0].varB);

我测试过,如果myarray的才能正确使用1024个元素初始化它,但是我似乎无法访问它们。

我刚刚从C ++到Java移动,所以我还是习惯了,我失去的东西明目张胆?

乔普埃根:

两件事情,

  • 你必须初始化CustomType。
  • CustomType并不需要访问MainClass.this,所以你可以把它静态的。

所以

public class MainClass {
    private static class CustomType {
        public byte[] varA;
        public int varB;

        public CustomType() {
            varA = new byte[3];   
            varB = 13;
        }
    }

    private CustomType[] myArray;


    public MainClass() {
        myArray = new CustomType[1024];
        for (int i = 0; i < myArray.length; ++i) {
            this.CustomType[i] = new CustomType();
        }
        // Or
        Arrays.setAll(myArray, CustomType::new);
        System.out.println(this.CustomType[0].varB);
    }
}

不使其静态存储MainClass.this在每一个CustomType实例,它是不必要的开销。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

爪哇 - 键值对自定义逻辑的最大打印

如何制作自定义对象副本?爪哇

爪哇8嵌套(多级)的基团

扩展动物的猎豹类。爪哇

爪哇从类型缩小参考转换到接口

爪哇 - 为什么ArithmeticException类的子类不叫?

类的阵列的阵列的爪哇8流转换

如何获取用户输入并存储在自定义对象中?爪哇

爪哇:A类含有B类含有A的Hashcode方法

如何从匿名类中获取原始类?爪哇

如何过滤JSoup中嵌套标签中的噪声?爪哇

如何将嵌套数组与 Map 分开?- 爪哇

爪哇不兼容的类型:整数不能转换到INT []

爪哇 - 比较班从不同的对象类型相同的属性

爪哇 - 为什么声明数组作为类型接口的?

如何在MongoDb中保存时间戳类型值 爪哇

如果我有 String 类型,如何交换日期?爪哇

爪哇(8):如何提取对象数组的特定类的项目?

爪哇 - 使用的getService方法谁拥有类<T>的参数

如何转储加载到内存中的类?爪哇

为什么未定义“ +”运算符?爪哇

爪哇广场

我如何处理从另一个类返回的嵌套哈希映射值?爪哇

爪哇 - 地图泛型类型来表示这种类型的消费

如何直接从其他类的库类中访问方法?爪哇

通过在某些包中添加所有类,在Hibernate中添加带注释的类。爪哇

流生成使用的forEach,爪哇8列表的列表(嵌套列表)

爪哇:双到浮子类型转换是给“无穷大”为较大的值

爪哇:切换2种方法参数(不同类型),以使用过载