Список в Java с использованием случайных чисел - PullRequest
3 голосов
/ 02 марта 2010

Я получаю следующую ошибку.

import java.util.*;
import java.io.*;

public class ShufflingListAndArray
{
  public static void main(String[] args) throws IOException

{
    List services = 


    //Arrays.asList("COMPUTER", "DATA", "PRINTER");

 Arrays.asList(new String[] {"COMPUTER", "DATA", "PRINTER"}); 

   Random rnd=new Random();
  String s = services.get(rnd.nextInt(services.size()));

    Collections.shuffle(services);


    //Collections.sort(list);


    System.out.println("List sorting :"+ services);
  }
} 

После компиляции приведенного выше кода я получаю следующую ошибку.

C:\>javac ShufflingListAndArray.java
ShufflingListAndArray.java:17: incompatible types
found   : java.lang.Object
required: java.lang.String
  String s = services.get(rnd.nextInt(services.size()));
                         ^
1 error

Ответы [ 5 ]

5 голосов
/ 02 марта 2010

Изменить List services ... на List<String> services

1 голос
/ 02 марта 2010

Ошибка компиляции довольно очевидна:

found   : java.lang.Object
required: java.lang.String

В нем говорится, что Object возвращено (найдено), но ваш код требует, чтобы оно было String.

Вам необходимо либо параметризовать List с помощью Generics , чтобы он мгновенно возвращал String при каждом вызове List#get() (рекомендуется):

List<String> services = Arrays.asList("COMPUTER", "DATA", "PRINTER");

или до уныние возвращенные Object до String самостоятельно:

String s = (String) services.get(rnd.nextInt(services.size()));
1 голос
/ 02 марта 2010

List.get () возвращает объект. Вам нужно привести его или использовать дженерики для хранения его в строковой переменной.

Чтобы использовать дженерики:

List<String> services = ...

Чтобы разыграть это:

String s = (String)services.get(rnd.nextInt(services.size()));
0 голосов
/ 02 марта 2010

Из вашего этого вопроса мне кажется, что вы используете более старую версию Java, чем Java 5.

Следующий код должен работать с ним:

import java.util.*;
import java.io.*;

public class ShufflingListAndArray {
  public static void main(String[] args) throws IOException {
    List services = Arrays.asList(new String[] {"COMPUTER", "DATA", "PRINTER"}); 
    Random rnd = new Random();
    String s = (String) services.get(rnd.nextInt(services.size()));
    Collections.shuffle(services);
    System.out.println("List sorting :" + services);
  }
} 
0 голосов
/ 02 марта 2010

нужно указать это список строк

List<String> services = Arrays.asList(new String[] {"COMPUTER", "DATA", "PRINTER"}); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...