Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
maharaja
0 / 0 / 0
Регистрация: 25.02.2019
Сообщений: 3
1

IntelliJ ругается на предикат с собственной функцией

24.04.2019, 23:29. Просмотров 258. Ответов 4

IDE не нравится мой предикат и она предлагает его безопасно удалить без каких-либо вариантов, НЕ принимая его за ошибку. Подсказка перенаправляет на метод Test якобы переопределяемый мной, что вызывает это предупреждение. Переименование метода ничего не меняет.

Java
1
2
3
4
5
6
7
8
9
10
public boolean isInSpeedRange(int a, int b)
    {
        if(a<=speed&&speed<=b) return true;
        return false;
    }
 
    static Predicate<Car> speedRangeTest(int a, int b)
    {
        return o->o.isInSpeedRange(a, b);
    }
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2019, 23:29
Ответы с готовыми решениями:

Intellij IDEA ругается на Double
Здравствуйте! После установки Intellij IDEA 2017 со всеми обновлениями, возникла такая проблема:...

IntelliJ IDEA вылетает при загрузке проекта. Ругается на nvinitx.dll
Помогите разобраться ......установил IntelliJ IDEA не пробную версию,а по студенческому на год,но...

Почему vk ругается на бесплатные хостинги? На какие не ругается?
Здравствуйте, Что нужно сделать, чтобы vk не ругался на бесплатный хостинг? Я нашёл отличный...

Написание собственной ОС
Доброго времени суток! Задался вопросом написать свою ОС на каком-либо языке высокого уровня. Думаю...

Написание собственной функции
Упрощенная задача из книги Дейтла. За стоянку до 3-х часов парковочный гараж запрашивает плату...

4
iSmokeJC
Модератор
Эксперт Java
3320 / 1676 / 730
Регистрация: 21.10.2017
Сообщений: 5,119
24.04.2019, 23:37 2
maharaja, целиком класс покажи
0
ViktorFX
300 / 201 / 53
Регистрация: 11.12.2016
Сообщений: 967
25.04.2019, 02:03 3
maharaja, Что вы пытаетесь сделать?
Цитата Сообщение от maharaja Посмотреть сообщение
Подсказка перенаправляет на метод Test якобы переопределяемый мной, что вызывает это предупреждение.
Predicate это интерфейс, и надо обязательно переопределить метод test (он с 1 параметром, например типа Car)

Добавлено через 16 минут
Выше я погорячился, вот пример когда лямбда отдельный метод класса (с чем опыта у меня вооще нет, предпочитаю немного другой синтаксис)
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import java.util.function.Predicate;
 
public class Test1{
 
    public static void main(String[] args){
        System.out.println(" : "+Test1.isInt(2,5).test(new Car()));
        System.out.println(" : "+Test1.isInt(4,5).test(new Car()));
        System.out.println(" : "+Test1.isInt(23,5).test(new Car()));
    }
    public static Predicate<Car> isInt(int a, int b) {
        return i -> a+b>12;
    }
}
class Car {
 
    @Override
    public String toString(){
        return "Car{"+'}';
    }  
}
Код
: false
 : false
 : true
Добавлено через 3 минуты
Честно сказать не вижу в нем смысла, я не понимаю выгоды его использования..
1
korvin_
2765 / 2036 / 366
Регистрация: 28.04.2012
Сообщений: 6,948
25.04.2019, 06:51 4
Цитата Сообщение от maharaja Посмотреть сообщение
IDE не нравится мой предикат и она предлагает его безопасно удалить без каких-либо вариантов, НЕ принимая его за ошибку.
Так не удаляй, в чём проблема?
0
ArtemFM
738 / 485 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
25.04.2019, 12:07 5
maharaja,
Java
1
2
3
4
5
6
7
8
9
10
public boolean isInSpeedRange(int a, int b)
    {
        if(a<=speed&&speed<=b) return true;
        return false;
    }
 
    static Predicate<Car> speedRangeTest(int a, int b)
    {
        return o->o.isInSpeedRange(a, b);
    }
какой в этом всём вообще толк от класса Car?
По сути метод в Predicate выглядит так:
boolean test(Car)
Но Car у тебя в твоём коде вообще не используется!

Добавлено через 2 минуты
IDEA скорее всего и просит возвращать не Presicate<Car>, а просто boolean, ибо класс Car нигде не фигурирует. Фигурируют переменные a и b и всё

Добавлено через 4 минуты
Хотя забираю свои слова обратно...Car фигурирует... Видимо день мой не заладится, если с утра туплю

Добавлено через 6 минут
всё нормально у меня:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import java.util.function.Predicate;
 
class Car {
    private int speed;
 
    Car(int speed) {
        this.speed = speed;
    }
 
    static Predicate<Car> speedRangeTest(int a, int b) {
        return c -> c.speed >= a && c.speed <= b;
    }
}
 
class CarTest {
    public static void main(String[] args) {
        int a = 5;
        int b = 10;
 
        for (int s = 0; s <= 15; s++) {
            System.out.printf("Test #%2d: speed = %2d, result = %s;\n", s + 1, s,
                    Car.speedRangeTest(a, b).test(new Car(s)));
        }
    }
}
Добавлено через 1 минуту
вывод:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Test # 1: speed =  0, result = false;
Test # 2: speed =  1, result = false;
Test # 3: speed =  2, result = false;
Test # 4: speed =  3, result = false;
Test # 5: speed =  4, result = false;
Test # 6: speed =  5, result = true;
Test # 7: speed =  6, result = true;
Test # 8: speed =  7, result = true;
Test # 9: speed =  8, result = true;
Test #10: speed =  9, result = true;
Test #11: speed = 10, result = true;
Test #12: speed = 11, result = false;
Test #13: speed = 12, result = false;
Test #14: speed = 13, result = false;
Test #15: speed = 14, result = false;
Test #16: speed = 15, result = false;
 
Process finished with exit code 0
1
25.04.2019, 12:07
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.04.2019, 12:07

Лицензирование собственной программы
Есть программный продукт, хочу его продавать. Вопрос в том, как подтвердить свое авторство на...

SWD на собственной плате
Сделал свою плату на stm32f405. Долго мучался, т.к. не получалось подключиться отладчиком. Затем...

Создание собственной файловой БД
Всем привет! Идея такова, что бы написать свою собственную БД, состоящую из каталогов/файлов...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.