Ошибка: тип выражения должен быть типом массива, но он разрешается в int - PullRequest
0 голосов
/ 13 марта 2019

У меня проблема с преобразованием из int в int []. Я пытался изменить кодировку, но все еще есть ошибка. Я хочу изменить метод getRandomNumberInRange на int [], потому что мне нужно объединить с [hostType] и [hostType] в виде массива.

// this method is to convert from int to int[]
static Integer[] toObject(int[] intArray) {

		Integer[] result = new Integer[intArray.length];
		for (int i = 0; i < intArray.length; i++) {
			result[i] = Integer.valueOf(intArray[i]);
		}
		return result;
	}

// this method to generate random number
public static int getRandomNumberInRange(int min, int max) {

		if (min >= max) {
			throw new IllegalArgumentException("max must be greater than min");
		}

		Random r = new Random();
		return r.nextInt((max - min) + 1) + min;
	}

//this method is to implement the function getRandomNumberInRange and need to be in array form
public static List<PowerHost> createHostList(int hostsNumber) {
		List<PowerHost> hostList = new ArrayList<PowerHost>();
		for (int i = 0; i < hostsNumber; i++) {
			int hostType = i % Constants.HOST_TYPES;

//			int mips2[]=(int) getRandomNumberInRange(100, 1000);
			List<Pe> peList = new ArrayList<Pe>();
			for (int j = 0; j < Constants.HOST_PES[hostType]; j++) {
				int[] obj = new int[hostType] ;
				Integer[] newObj = toObject(obj);
				peList.add(new Pe(j, new PeProvisionerSimple(getRandomNumberInRange(100, 1000)[newObj])));
			}

1 Ответ

1 голос
/ 13 марта 2019

Есть несколько вещей не так.Во-первых, в последнем фрагменте кода вам не хватает двух символов '}.Во-вторых, getRandomNumberInRange(int min, int max) возвращает int, который не является массивом.Это означает, что вы не будете делать getRandomNumberInRange(100, 1000)[newObj], потому что это похоже на 107[4].107 не массив, так что не будет работать.Кроме того, newObj является массивом, поэтому даже если getRandomNumberInRange вернул массив, newObj не сможет использоваться в качестве индекса для получения целого числа в массиве.Это потому, что индекс (то, что идет в массиве [ здесь ]) должен быть int.

...