Как правильно обратиться к методу в Java?

189
01 декабря 2017, 05:20

Выбивает ошибку что метод не существует

Файл первый:

import edu.san.stats.AverageCalcAware;
import edu.san.stats.MaxMinCalcAware;
import edu.san.stats.MedianCalcAware;
public class BigDecimalStats{
    private int BigDecimal[];

    public BigDecimalStats(int BigDecimal[] ) {
        this.BigDecimal = BigDecimal;
    }

    public class Average implements AverageCalcAware{
        @Override
        public java.math.BigDecimal calcMedian() {
            return null;
        }
    }
    public class MaxMin implements MaxMinCalcAware{
        @Override
        public java.math.BigDecimal calcMax() {
            int max = (int) Double.MIN_VALUE;
            for (int i = 0; i < BigDecimal.length; i++) {
                 max = Math.max(max, BigDecimal[i]);
              }
            return calcMax();
        }
        @Override
        public java.math.BigDecimal calcMin() {
            return null;
        }
    }
    public class Median implements MedianCalcAware{
        @Override
        public java.math.BigDecimal calcAverage() {
            return null;
        }
}

Файл второй (вывод):

public class StatsCalc {
    public static void main(String[] args) {
        int [] big = {1,2,3,1,5,6};
        BigDecimalStats stats = new BigDecimalStats(big);
        for (int i = 0; i < big.length; i++) {
             System.out.println(big[i] + " ");
          }
        System.out.println(String.format("Max: " + stats.calcMax()));
    }
}

Возникает ошибка при вызове stats.calcMax():

Multiple markers at this line - The method calcMax() is undefined for the type BigDecimalStats - MaxMin cannot be resolved or is not a field

Answer 1

Метод calcMax() у вас определен в интерфейсе MaxMinCalcAware. Этот интерфейс реализован классом MaxMin, но не классом BigDecimalStats. Вам нужно обращаться к объекту типа MaxMinCalcAware, либо реализовать интерфейс в самом классе BigDecimalStats.

PS: советую вам не называть переменные класса таким образом: private int BigDecimal[]; - уберите из наименования BigDecimal

READ ALSO
Отправка email (java)

Отправка email (java)

Я пытаюсь отправить email с помощью следующего кода:

217
Как освободить MediaPlayer от ресурсов?

Как освободить MediaPlayer от ресурсов?

Открываю новый файл по клику на кнопке:

187
Android. Проверка версии приложения в Play Market

Android. Проверка версии приложения в Play Market

Доброго времени сутокСразу же извиняюсь за возможную кривизну вопроса

166
запуск jboss 5.1 через прокси-сервер

запуск jboss 5.1 через прокси-сервер

Добрый день! Отсутствует соединение к Интернету при попытке перехода приложения на любой интернет-сайтВход в интернет должен осуществляется...

239