我通过互联网上的书籍和视频教自己Java。 我知道波纹管代码是错误的,但我如何从这样的变量中读取对象名称?
public static void main(String[] args) {
Scanner input =new Scanner (System.in);
String ObjectName=input.next();
className ObjectName=new className ();
ᴋᴇʏsᴇʀ,Pshemo,Brian Vanover我编辑了我的问题
我有一个名为BankAccount的类和另一个带有此代码的主类
public static void main(String[] args) {
Scanner input =new Scanner (System.in);
System.out.println("Please Enter ID");
int id=input.nextInt();
System.out.println("Please Enter Name");
String name = input.next();
System.out.println("Please Enter Balance");
double balance = input.nextDouble();
String client=input.next();
BankAccount client = new BankAccount (id,name,balance);// i know this code line is worng
client.printStatement();
答案 0 :(得分:3)
如果您询问如何仅根据类名创建类的实例,那么您可以尝试使用
Scanner input =new Scanner (System.in);
String className = input.nextLine();
Class<?> clazz = Class.forName(className);
Object o = clazz.newInstance();
现在,如果你传递full.package.name.of.YourClass
并且如果这个类具有可访问的无参数构造函数,那么你应该能够通过newInstance
方法创建它的实例。
编辑。
您似乎希望将对象存储在用户提供的某个名称上。您无法明确地将其作为变量名称执行,但您可以使用String
界面从yourObject
到Map
制作一些地图。您的代码可能看起来像
Scanner input = new Scanner(System.in);
System.out.println("Please Enter ID");
int id = input.nextInt();
System.out.println("Please Enter Name");
String name = input.next();
System.out.println("Please Enter Balance");
double balance = input.nextDouble();
String client = input.next();
BankAccount clientAccount = new BankAccount(id, name, balance);
client.printStatement();
Map<String,BankAccount> map = new HashMap<>();
map.put(client, clientAccount);
稍后您可以使用map.get
获取客户帐户并获取帐户详细信息,例如
map.get(client).getID();//assuming that you have getter for ID
答案 1 :(得分:0)
这可以通过使用enum
或if-logic
来处理。如果您期望有限数量的可能输入,那么逻辑就可以了:
public static void main(String[] args) {
Scanner input =new Scanner (System.in);
String objectName = input.next();
if (ObjectName.equals("obj1")) {
Obj1 myObject = new Obj1();
} else {
Obj2 myObject = new Obj2();
}
答案 2 :(得分:0)
第一个文件名Out.java&amp;第二个文件名in.java //第一个文件的代码从这里开始
public class Out {
public static void main(String[] args) {
in inObject =new in();
inObject.ikl();
}
}
//second file's code start here
import java.util.Scanner;
public class in {
public static int ikl() {
Scanner input=new Scanner(System.in);
int j=input.nextInt();
System.out.println(j);
return j;
}
}