这是我遇到的问题的简化版本。我试图在类数据库中创建一个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;
}
答案 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
类的内部类,Test
是database
的内部类。要创建内部类的实例,您必须创建封闭类的实例。
创建一个新的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);
更重要的是,你的类层次结构和内部类的设计很容易混淆,你可能想花一点时间思考它。