2015-12-14 4 views
0

Hello stackoverflow community. Мне нужна помощь, я новичок в JAVA. Я создал это:JAVA несовместимое значение типа

public static Modulis[] surasti_visus (Modulis G[], int n, int minimalus) { 
    Modulis X[] = new Modulis[n]; 
    Modulis min = minimalus; 
    for (int i=1; i<n; i++) 
     if(min.gautiKreditus() < G[i].gautiKreditus()) X[i] = G[i]; 
    return X; 
} 

Для того, чтобы найти все более крупные значения then minimus и записать их в новый массив. Но я получаю ошибку из-за этой строки:

Modulis min = minimalus; 

Eror is: несовместимые типы; требуется Modulis; найдено int; Что здесь не так, пожалуйста, помогите!

+0

'minimalus' имеет тип' int'. 'min' имеет тип' Modulis [] '. Вы можете присвоить значение типа «Modulis» переменной, объявленной как этот тип. Есть ли способ сделать «Modulis» из «int»? Может быть, конструктор, который принимает параметр 'int'? Или вы хотели просто сказать «if (min childofsoong

+0

@soong yea Я имею в виду if (min McLaren

ответ

3

Проблема: Вы пытаетесь сохранить Int значение типа Modulis, это невозможно в Java, вам нужно использовать

public static Modulis[] surasti_visus (Modulis G[], int n, Modulis minimalus) { 
    Modulis X[] = new Modulis[n]; 
    for (int i=1; i<n; i++) 
     if(minimalus.gautiKreditus() < G[i].gautiKreditus()) X[i] = G[i]; 
    return X; 
} 

или

public static Modulis[] surasti_visus (Modulis G[], int n, int minimalus) { 
    Modulis X[] = new Modulis[n]; 
    Modulis min = new Modulis(minimalus); 
    for (int i=1; i<n; i++) 
     if(min.gautiKreditus() < G[i].gautiKreditus()) X[i] = G[i]; 
    return X; 
} 

или

public static Modulis[] surasti_visus (Modulis G[], int n, int minimalus) { 
    Modulis X[] = new Modulis[n]; 
    for (int i=1; i<n; i++) 
     if(minimalus < G[i].gautiKreditus()) X[i] = G[i]; 
    return X; 
} 
3

Основываясь на вашем комментарий, я предполагаю, что Modulis.gautiKreditus() возвращает int, который вы хотели сравнить e с значением min. Таким образом, просто объявить min как межд (или не объявлять его вообще, так как вы используете только значение, передаваемое в):

public static Modulis[] surasti_visus (Modulis G[], int n, int minimalus) { 
    Modulis X[] = new Modulis[n]; 
    for (int i=1; i<n; i++) 
     if(minimalus < G[i].gautiKreditus()) X[i] = G[i]; 
    return X; 
} 

Теперь вы сравниваете int 'с до int-х , и нет необходимости помещать минимальное значение в другую переменную.

Смежные вопросы