@onex_dev

Не удаётся преобразовать double [] к классу Main как решить?

Как выяснить какой тип у Main и почему он не может его привести?
Выдаёт ошибку:
Main.java:26: error: incompatible types: double[] cannot be converted to Main
public class Main
{
   private double [] vektor; 
   public Main() {
       double [] vektor = {2, 3.5, -5}; 
    }
   public  Main plus (Main vektor){
        double [] a = {2, 3.5, -5};
        double [] b = {2, 3.5, -5};
        double [] r = new double [a.length+b.length];
        System.arraycopy(a, 0, r, 0, a.length);
	System.arraycopy(b, 0, r, a.length, b.length);
	return r;
    }
 }
  • Вопрос задан
  • 178 просмотров
Пригласить эксперта
Ответы на вопрос 2
GavriKos
@GavriKos
У Main тип - Main.
Привести не может потому что нет правил перевода массива даблов в мейн.
Вопрос - что вы хотите от метода Plus? В нем ни входной параметр не используется, и возвращает он почему то Main. Код мягко говоря странный.
Ответ написан
@distrik
Programador
Первая часть кода
private double [] vektor;
public Main() {
double [] vektor = {2, 3.5, -5};
}

не имеет никакой связи со второй частью
public Main plus (Main vektor){
double [] a = {2, 3.5, -5};
double [] b = {2, 3.5, -5};
double [] r = new double [a.length+b.length];
System.arraycopy(a, 0, r, 0, a.length);
System.arraycopy(b, 0, r, a.length, b.length);
return r;
}

Мало того, при объявлении метода:
public Main plus (Main vektor)

вы сказали, что вам для работы понабится параметр типа Main, но в теле нигде не использовали его.
А еще, вы пооьещали вернуть объект типа Main, в возвращаете массив.
Либо пообещайте честно возвращать массив
public double[] plus (Main vektor)

Либо положите массив внутрь Main через конструктор
public Main(double [] vektor) {
this.vektor = vektor;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы