Java 需要调用数组并在其他类中打印它
所以我有一个股票程序,它的符号存储在一个数组中,我需要将该数组调用到另一个类中,并将其打印出来。这是我的代码和数组代码Java 需要调用数组并在其他类中打印它,java,Java,所以我有一个股票程序,它的符号存储在一个数组中,我需要将该数组调用到另一个类中,并将其打印出来。这是我的代码和数组代码 abstract class stockArray { String stocks[]; String stockSymbols[] ={ "SMG", "APL", "GE", "TOY","SUB","GM","LG","VZ","JP","BTN"}; } 这是我需要调用它并将其打印到Switch CASE语句的case1的代码。如何将该数组调用到该位
abstract class stockArray
{
String stocks[];
String stockSymbols[] ={ "SMG", "APL", "GE", "TOY","SUB","GM","LG","VZ","JP","BTN"};
}
这是我需要调用它并将其打印到Switch CASE语句的case1的代码。如何将该数组调用到该位置(案例1)并打印该数组的内容?谢谢
public class stockProgram
{
public static void main(String[] args)
{
String s;
Scanner sc= new Scanner(System.in);
Scanner input = new Scanner(System.in);
Scanner dec = new Scanner(System.in);
System.out.println("Welcome to the stock tracker Program,");
System.out.println("What would you like to do?");
System.out.println("***MENU OPTIONS***");
System.out.println("1. See a list of stocks");
System.out.println("2. Buy stocks");
System.out.println("3. Sell Stock Holdings.");
System.out.println("4. Search Stock listings");
System.out.println("5. Exit Program");
System.out.println(" Please Enter an option");
int op = sc.nextInt();
switch(op)
{
case 1: System.out.println("---Stock Holdings List---");
System.out.println("These are the current stocks avaliable to purchase in this program.");
break;
首先,请遵循命名约定-类名以大写开头,因此将
stockArray
更改为stockArray
访问该数组的一种方法是使其静态
,如下所示:-
static final String stockSymbols[] ={ "SMG", "APL", "GE", "TOY","SUB","GM","LG","VZ","JP","BTN"};
然后在案例陈述中使用以下代码:-
String symbols[] = StockArray.stockSymbols;
Arrays.stream(symbols).forEach(System.out::println);
或者,如果不想使其成为静态的,可以创建一个匿名内部类:-
String symbols[] = new StockArray() {}.stockSymbols;
Arrays.stream(symbols).forEach(System.out::println);
请注意,我将该数组存储在另一个变量symbols
中只是为了演示,您不需要这样做。定义一个扩展抽象类stockArray
的类:
class StockArraySubclass extends stockArray {
}
在stockProgram
类的开关盒中使用StockArraySubclass
:
StockArraySubclass st = new StockArraySubclass();
System.out.println(Arrays.toString(st.stockSymbols));
这将打印:
[SMG、APL、GE、TOY、SUB、GM、LG、VZ、JP、BTN]
您不能“调用”阵列。我想你的意思是说“我需要将该数组传递到另一个类”stockArray
类是抽象的,它不能在当前状态下使用。不要对同一个输入使用多个扫描仪,只使用一个扫描仪是否需要将stockArray
设置为非抽象?@ScaryWombat很好,不确定OP为什么会有一个没有任何抽象方法的抽象类。如果那里没有隐藏的方法,那么我主张将其非抽象化;这样就不需要匿名的内部类了。嘿,Kartik,谢谢你的帮助,所以我做了你推荐的第一件事,并将其设置为静态,但是我在内部类StockProgram中得到了一个错误非法的静态声明。StockArray修饰符static只允许在常量变量中使用declarations@MattLoadman啊,你有StockArray
class内部StockProgram
class。在这种情况下,将单词abstract
替换为static
,因为您需要从main
方法调用它。然后使用stringsymbols[]=newtest().stockSymbols访问它代码>