Java 初始化变量的正确方法
好吧,这只是一个在黑暗中拍摄,但它可能是我得到的大多数错误的原因 当你开始做某事的时候。比如说一个小小的挥杆项目。是这样吗Java 初始化变量的正确方法,java,swing,initialization,constructor,Java,Swing,Initialization,Constructor,好吧,这只是一个在黑暗中拍摄,但它可能是我得到的大多数错误的原因 当你开始做某事的时候。比如说一个小小的挥杆项目。是这样吗 variables here { private Jlist contactList; String [] contactArray; ArrayList <String> contactArrayList; ResultSet namesList // constructor here public whatever() { Gr
variables here
{
private Jlist contactList;
String [] contactArray;
ArrayList <String> contactArrayList;
ResultSet namesList
// constructor here
public whatever()
{
GridLayout aGrid = new GridLayout(2,2,10,10);
contact1 = new String();
contact2 = new String();
contact3 = new String();
contactArrayList = new ArrayList<String>();
// is something supposed too go in the () of this JList?
contactList = new JList();
contactArray = new String[5];
from1 =new JLabel ("From: " + contactArray[1]);
gridlayout.add(components)// theres too many components to write onto SO.
}
// methods here
public void fillContactsGui()
{
createConnection();
ArrayList<String> contactsArrayList = new ArrayList<String>();
while (namesList.next())
{
contactArrayList.add(namesList.getString(1));
ContactArray[1] = namesList[1];
}
}
public class test
{
int i;
public test()
{
i = 0;
}
public void addi()
{
i = i +1;
}
}
public class test
{
int i = 0;
public test()
{
int i = 0;
}
public void addi()
{
int i = i +1;
}
}
而不是像这样
variables here
{
private Jlist contactList;
String [] contactArray;
ArrayList <String> contactArrayList;
ResultSet namesList
// constructor here
public whatever()
{
GridLayout aGrid = new GridLayout(2,2,10,10);
contact1 = new String();
contact2 = new String();
contact3 = new String();
contactArrayList = new ArrayList<String>();
// is something supposed too go in the () of this JList?
contactList = new JList();
contactArray = new String[5];
from1 =new JLabel ("From: " + contactArray[1]);
gridlayout.add(components)// theres too many components to write onto SO.
}
// methods here
public void fillContactsGui()
{
createConnection();
ArrayList<String> contactsArrayList = new ArrayList<String>();
while (namesList.next())
{
contactArrayList.add(namesList.getString(1));
ContactArray[1] = namesList[1];
}
}
public class test
{
int i;
public test()
{
i = 0;
}
public void addi()
{
i = i +1;
}
}
public class test
{
int i = 0;
public test()
{
int i = 0;
}
public void addi()
{
int i = i +1;
}
}
我正在试图找出初始化变量的正确方法。因为我每次使用它们时都会定义它们,所以不初始化东西的唯一问题是你会让自己面对空指针异常。理想情况下,您应该初始化构造函数中需要的所有内容,这样您就可以确保其他每个方法都可以使用。另一种方法是在调用方法之前检查对象是否为null(例如,if(list!=null&&list.size()>0))不初始化对象的唯一问题是您会遇到null指针异常。理想情况下,您应该初始化构造函数中需要的所有内容,这样您就可以确保其他每个方法都可以使用。另一种方法是在调用方法之前检查对象是否为null(例如,如果(list!=null&&list.size()>0))只要初始值已知,通常应尽快初始化变量。而不是
ArrayList<String> contactArrayList;
通常,只要初始值已知,就应该尽快初始化变量。而不是
ArrayList<String> contactArrayList;
由于不同的原因,可以在不同的位置初始化变量。例如,在示例代码中,您总是将联系人列表初始化为新的JList。这可以在“此处变量”部分中完成,如
private JList contactList=new JList()
contactArrayList看起来通常基于传递到构造函数中的参数,因此应该在构造函数中将这些项添加到它中。如果采用这种方法,那么contactArrayList应该声明为final。这将强制所有构造函数初始化列表。(如果您不想将其声明为最终版本,则需要在声明时以处理联系人列表的相同方式对其进行初始化。)
有时,在类的实例构造完成之前,字段不能(或不应该)初始化。在这些情况下,您必须非常小心地访问和使用字段,以确保它不会在未初始化状态下使用。由于不同的原因,可以在不同的位置初始化变量。例如,在示例代码中,您总是将联系人列表初始化为新的JList。这可以在“此处变量”部分中完成,如
private JList contactList=new JList()
contactArrayList看起来通常基于传递到构造函数中的参数,因此应该在构造函数中将这些项添加到它中。如果采用这种方法,那么contactArrayList应该声明为final。这将强制所有构造函数初始化列表。(如果您不想将其声明为最终版本,则需要在声明时以处理联系人列表的相同方式对其进行初始化。)
有时,在类的实例构造完成之前,字段不能(或不应该)初始化。在这些情况下,您必须非常小心地访问和使用字段,以确保它不会在未初始化状态下使用。本教程中回答了您的许多问题 您将了解到实例变量根据其类型初始化为默认值、何时使用静态初始值设定项、何时使用构造函数、关于继承的初始化等 以下是一些其他有价值的资源: