Java 动态命名类的实例?
只是一个关于小事情的快速问题。以下是我的编程2课程的编程作业的一部分。它关注继承和多个类。我已经回答了这个问题,但我想将这些类合并到一个主函数中,并实际构建一些东西,而不仅仅是提交最基本的内容 我的问题是下面的代码部分。用户运行程序时,会看到一个对话框,询问他想添加什么(CD或电影,它们都是单独的类) 不过,我想让用户在程序运行时实际命名类的特定实例。因此,用户将单击Movie,例如,提示用户输入名称,然后在下一行中使用Movie类中的构造函数以用户输入的名称创建一个新实例类?这可能吗?我尝试使用一个简单的字符串x=JOptionpane,然后也命名类x,但没有成功。我在想可能有某种方法会引用字符串?比如目录,也许是x 提前谢谢Java 动态命名类的实例?,java,class,constructor,joptionpane,Java,Class,Constructor,Joptionpane,只是一个关于小事情的快速问题。以下是我的编程2课程的编程作业的一部分。它关注继承和多个类。我已经回答了这个问题,但我想将这些类合并到一个主函数中,并实际构建一些东西,而不仅仅是提交最基本的内容 我的问题是下面的代码部分。用户运行程序时,会看到一个对话框,询问他想添加什么(CD或电影,它们都是单独的类) 不过,我想让用户在程序运行时实际命名类的特定实例。因此,用户将单击Movie,例如,提示用户输入名称,然后在下一行中使用Movie类中的构造函数以用户输入的名称创建一个新实例类?这可能吗?我尝试使
import javax.swing.JOptionPane;
public class Main
{
public static void main (String args [])
{
Object[] options = {"Movie",
"CD",
"Cancel"};
int n = JOptionPane.showOptionDialog(null, "Would you like to add an item?","Product",
JOptionPane.YES_NO_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE,
null,
options,
options[2]);
switch(n)
{
case 0:
String moviet = JOptionPane.showInputDialog("Title:");
int movieID = Integer.parseInt(JOptionPane.showInputDialog("ID:"));
Movie moviett = new Movie(moviet, movieID);
}
}
}
如果它不超过类的内容,那么可以使用1来存储由运行时指定的字符串标识的实例
Map<String, Media> instances = new HashMap<>();
// snip...
String moviet = JOptionPane.showInputDialog("Title:");
int movieID = Integer.parseInt(JOptionPane.showInputDialog("ID:"));
Movie moviett = new Movie(moviet, movieID);
instances.put("some user-provided string", moviett);
Map instances=newhashmap();
//剪断。。。
String moviet=JOptionPane.showInputDialog(“标题:”);
int movieID=Integer.parseInt(JOptionPane.showInputDialog(“ID:”);
Movie moviett=新电影(moviet,movieID);
put(“一些用户提供的字符串”,moviett);
1假设
Movie
和CD
都扩展/实现Media
如果它不超出类的内容,则可以使用1来存储由运行时指定的字符串标识的实例
Map<String, Media> instances = new HashMap<>();
// snip...
String moviet = JOptionPane.showInputDialog("Title:");
int movieID = Integer.parseInt(JOptionPane.showInputDialog("ID:"));
Movie moviett = new Movie(moviet, movieID);
instances.put("some user-provided string", moviett);
Map instances=newhashmap();
//剪断。。。
String moviet=JOptionPane.showInputDialog(“标题:”);
int movieID=Integer.parseInt(JOptionPane.showInputDialog(“ID:”);
Movie moviett=新电影(moviet,movieID);
put(“一些用户提供的字符串”,moviett);
1假设
Movie
和CD
都扩展/实现Media
Java不是这样工作的,事实上变量名远没有您想象的那么重要,几乎不存在于编译代码中。相反,如何使用字符串来设置电影类的字段,也许是一个名为“name”的字符串字段。如果想基于字符串检索类实例,请考虑使用一个映射(如Hasmap)。 < P> java不这样工作,事实上变量名远比您想象的重要,而且几乎不存在于编译代码中。相反,如何使用字符串来设置电影类的字段,也许是一个名为“name”的字符串字段。如果要基于字符串检索类实例,请考虑使用一个映射,例如Hasmap。< /P> GMTA,然后你就揍我了!1+我的乳头因高兴而爆炸这有点让我头疼,但我会调查一下。谢谢你的迅速回复。该开始谷歌搜索了!GMTA,你赢了我一拳!1+我的乳头因高兴而爆炸这有点让我头疼,但我会调查一下。谢谢你的迅速回复。该开始谷歌搜索了!