【问题标题】:Creating an array of a class inside of another class在另一个类中创建一个类的数组
【发布时间】:2015-10-18 20:36:52
【问题描述】:

这是我遇到的问题的简化版本。我正在尝试在类数据库中创建一个 ProduceItem 数组。我已经概述了我在尝试中遇到的警告和问题。提前感谢您的帮助。

import javax.swing.*;
import java.awt.*;
public class Test{
    public static void main(String[] args) {
    //attempt 1: 
    //database a;
    // Warning: local variable a is not used.
    // Warning: Null pointer access: The variable a can only be null at this location

    //attempt 2:
    //database a;
    //a.test[0].setCode(2);
    //local variable has not been initialize

    //results in attempt 2 part 2
    //database a = null;
    //a.test[0].setCode(2);
    //Null pointer access: The variable a can only be null at this location
    //When I run it, Exception in thread "main" java.lang.NullPointerException 
    //at Test.main(Test.java:8) 
    //\which is a.test[0].setCode(1); 
    }
public class ProduceItem{
  private int code;
  public ProduceItem(){
     code = 0;
  }
  public int getCode(){
     return code;}

  public void setCode(int a){
     code = a;}
public class database{
  ProduceItem[] test;
  }

【问题讨论】:

  • a = 新数据库()?

标签: java arrays eclipse


【解决方案1】:

您应该尝试尝试 #2 但首先初始化数据库 a。

Database a = new Database();

【讨论】:

    【解决方案2】:

    在您的情况下,ProduceItemTest 类的内部类,databaseProduceItem 的内部类。要创建内部类的实例,您必须创建封闭类的实例。

    创建一个新的Test 对象

    Test test = new Test();
    

    创建一个新的ProduceItem 对象

    ProduceItem pItem = test.new ProduceItem();
    

    创建一个新的database 项目

    ProduceItem.database a = pItem.new database();
    

    然后为ProduceItemdatabase中的任意一个数组元素调用方法

    a.test[0].setCode(2);
    

    作为旁注,Java 中的约定是类名以大写字母开头,例如Database

    更重要的是,您的类层次结构和内部类的设计有点令人困惑,您可能需要花点时间考虑一下。

    【讨论】:

    • 当我创建一个新的数据库对象Database a = new Database(); 时,我收到一个错误“没有可访问类型为 Test 的封闭实例。必须使用类型为 Test 的封闭实例来限定分配(例如 x.new A() 其中x 是测试的一个实例)@omer727
    • 我注意到你有内部类并相应地改变了我的答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-02
    • 1970-01-01
    • 2020-10-23
    • 2011-06-02
    • 2011-12-13
    相关资源
    最近更新 更多