在另一个类

时间:2015-10-18 20:36:53

标签: java arrays eclipse

这是我遇到的问题的简化版本。我试图在类数据库中创建一个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;
  }

2 个答案:

答案 0 :(得分:0)

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

Database a = new Database();

答案 1 :(得分:0)

在您的情况下, "dependencies": { "history": "^1.12.5", "react": "^0.14.0", "react-dom": "^0.14.0", "react-redux": "^4.0.0", "react-router": "^1.0.0-rc3", "redux": "^3.0.2", "redux-router": "^1.0.0-beta3" }, ProduceItem类的内部类,Testdatabase的内部类。要创建内部类的实例,您必须创建封闭类的实例。

创建一个新的ProduceItem对象

Test

创建一个新的Test test = new Test(); 对象

ProduceItem

创建新的ProduceItem pItem = test.new ProduceItem(); 商品

database

然后在ProduceItem.database a = pItem.new database();

内调用ProduceItem数组的任何元素的方法
database

如旁注所示,Java中的约定是类名以大写字母开头,例如a.test[0].setCode(2);

更重要的是,你的类层次结构和内部类的设计很容易混淆,你可能想花一点时间思考它。