我正在使用bluej为用户列表制作程序。 当我编译并运行代码时,bluej不会给出错误。 但是当我创建一个类的新实例时,看起来没有任何反应。 从我的实例打印到我的终端窗口的行不起作用。 如何在终端窗口中进行实例打印显示?
import java.util.*;
import java.text.*;
public class Main{
private ArrayList<List> userlists;
public Main(){
System.out.print('\f');
System.out.println("this text will show.");
newlist("listname");
}
public void newlist(String listname){
System.out.println("this text will show too!");
List userlist = new List(listname); //terminal does not show lines printed by constructor of List?
userlists.add(userlist);
userlist.printSomeText(); //second attempt to print a line, does not show in terminal.
}
}
public class List {
private String listname;
public List(String ln) {
listname = ln;
System.out.println("this text does not show.");
}
public void printSomeText(){
System.out.println("this text neither.");
}
}
我运行它(首先编译两个类然后)右键单击bluej界面中的Main类并选择new Main()。当我这样做时,终端窗口显示:
this text will show.
this text will show too!
但它没有显示:
this text will show.
this text will show too!
this text does not show.
this text neither.
它没有显示anny错误,所以我想知道什么是错误的以及如何得到第二个结果,显示这四行。
答案 0 :(得分:0)
不要被
弄糊涂public Main() {
...
}
这是构造函数。您需要一个main
方法入口点来调用它:
public static void main(String[] args) {
new Main();
}
除了:不要忘记实例化userlists
ArrayList
以避免获得NPE
:
private ArrayList<List> userlists = new ArrayList<>();
答案 1 :(得分:0)
首先,您在同一个public
文件中没有两个Java
类。
其次,您必须在使用该变量或字段之前初始化变量,这在您的问题中没有发生。我已经对您的代码进行了一些修改,可以根据您的需要进行修改,还可以打印您要打印的第二行代码。
import java.util.ArrayList;
public class Main {
private ArrayList<List> userlists;
public Main() {
userlists = new ArrayList<List>();
System.out.print('\f');
System.out.println("this text will show.");
newlist("listname");
}
public void newlist(String listname) {
System.out.println("this text will show too!");
List userlist = new List(listname); // terminal does not show lines
// printed by constructor of List?
userlists.add(userlist);
userlist.printSomeText(); // second attempt to print a line, does not
// show in terminal.
}
public static void main(String ... args){
new Main();
}
}
class List {
private String listname;
public List(String ln) {
listname = ln;
System.out.println("this text does not show.");
}
public void printSomeText() {
System.out.println("this text neither.");
}
}