Передача float в конструктор, который принимает только int - не может изменить конструктор - PullRequest
0 голосов
/ 17 апреля 2019

Я создаю новый класс (B), который расширяет другой класс (A).

В классе A есть метод получения класса X, который создает и возвращает объект класса X.

Мне НЕ разрешено изменять класс A или X.

Конструктор класса X в настоящее время принимает int и строку, которые уже были введены в класс A. Мне нужно переопределить этот метод в классе B и создать объект класса X с плавающей точкой и строкой вместо int и строка, и я не могу понять, как это сделать. Есть идеи?

public class X {

   private int myInt;
   private String myString;

   public X(int myInt, String myString){
      this.myInt = myInt;
      this.myString = myString;
   }
}


public class A {

   protected X getX(){
      return new X(1, "A");
   }
}

public class B extends A {

   @Override
   protected X getX(){
      return new X(1.5, "A"); //Here, I can't input a float. 
   }
}

1 Ответ

2 голосов
/ 17 апреля 2019

float не может быть понижено до int по умолчанию.

Вы можете передать floor/ceil значение float

Или используйте неявное преобразование (int)1.5 здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...