Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何根据用户选择显示对象属性?_Java_Arrays_Arraylist - Fatal编程技术网

Java 如何根据用户选择显示对象属性?

Java 如何根据用户选择显示对象属性?,java,arrays,arraylist,Java,Arrays,Arraylist,我是java面向对象编程新手,需要帮助解决一个问题 我创建了各种DVD对象,希望让用户选择一个选项,然后显示所选DVD的几个属性。但是,我不想为所有可能的电影选项创建8个不同的案例。有没有一种方法可以调用一个方法,该方法的变量对应于每个DVD ID(这是我分配的第一个变量) 我试图创建一个数组列表,但它给了我一个错误 非常感谢您的帮助 List<DVD> list = new ArrayList<DVD>(){ DVD dvd1 = new DVD(1,

我是java面向对象编程新手,需要帮助解决一个问题

我创建了各种DVD对象,希望让用户选择一个选项,然后显示所选DVD的几个属性。但是,我不想为所有可能的电影选项创建8个不同的案例。有没有一种方法可以调用一个方法,该方法的变量对应于每个DVD ID(这是我分配的第一个变量)

我试图创建一个数组列表,但它给了我一个错误

非常感谢您的帮助

    List<DVD> list = new ArrayList<DVD>(){
    DVD dvd1 = new DVD(1, "Movie 1");
    DVD dvd2 = new DVD(2, "Movie 2");
    DVD dvd3 = new DVD(3, "Movie 3");
    DVD dvd4 = new DVD(4, "Movie 4");
    DVD dvd5 = new DVD(5, "Movie 5");
    DVD dvd6 = new DVD(6, "Movie 6");
    DVD dvd7 = new DVD(7, "Movie 7");


        System.out.println("Enter your movie choice"); 
        int movieChoice = sc.nextInt();

        System.out.println(list.get(movieChoice).getDVDName());
List List=new ArrayList(){
DVD DVD 1=新DVD(1,“电影1”);
DVD DVD 2=新DVD(2,“电影2”);
DVD DVD 3=新DVD(3,“电影3”);
DVD DVD 4=新DVD(4,“电影4”);
DVD DVD 5=新DVD(5,“电影5”);
DVD DVD 6=新DVD(6,“电影6”);
DVD DVD 7=新DVD(7,“电影7”);
System.out.println(“输入您的电影选择”);
int movieChoice=sc.nextInt();
System.out.println(list.get(movieChoice.getDVDName());

使用反射按名称查找字段。比如说,
想要的
哈希集包含需要处理的字段的名称

Set<String> wanted = new HashSet<>();
    Stream.of(DVD.class.getDeclaredFields()).filter(field -> wanted.contains(field.getName())).forEach(field ->
            {
                boolean accesBuffer = field.isAccessible();
                field.setAccessible(true);
                //Do Something With the Field - get value, store in HashMap, etc.
                field.setAccessible(accesBuffer);
            }
    );
Set-wanted=newhashset();
Stream.of(DVD.class.getDeclaredFields()).filter(field->wanted.contains(field.getName()).forEach(field->
{
布尔accesBuffer=field.isAccessible();
字段。setAccessible(true);
//对字段执行一些操作—获取值、存储在HashMap中,等等。
字段.setAccessible(accesBuffer);
}
);

您将
javascript
作为标记之一。将其更改为
java
会出现什么错误?此外,您在初始化列表的行的和处有一个
{
。此外,您从不将任何DVD添加到列表中(
list.add(dvd1)
)。