Java Обращение к любому объекту

Я хочу найти объект. Есть только один объект с переменной x = 10. Является ли это возможным? Надеюсь, вы поняли то, что я пытаюсь объяснить ... :)

if (any object of the class X .getValue() == 10)
...

Класс X

 public int getValue(){
    return x;
    }

Вы хотите найти его откуда? список, база данных и т. д.? пожалуйста, опубликуйте еще немного своего кода для ясности.

Avinash Anand 14.04.2018 21:30

В вашей программе вам нужно как-то хранить экземпляры класса X. Чтобы ответить на ваш вопрос, вам нужно сообщить нам, какую структуру данных вы используете для хранения этих экземпляров X

luksch 14.04.2018 21:32
Получение всех экземпляров класса может быть? Или ты хочешь static?
Johnny Mopp 14.04.2018 21:38
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
3
42
2

Ответы 2

List<X> xList = new ArrayList<>();

public static X findXWithValue(List<X> xList, int value) {
 X xWithValue = null;
 for(int i = 0 ; i < xList.size()-1 ; i++) {
  if (value == xList[i].getValue()) {
   xWithValue = xList[i];
   break;
  }
 }
 return xWithValue;
}

Br,

Ракеш

List xList = new ArrayList<>(); - Не используйте сырые типы.
Turing85 14.04.2018 21:39

Фактически код не был отформатирован, из-за чего <X> был скрыт.

Rakesh Narang 14.04.2018 21:42

Что-то вроде:

public class ObjectFinder {

public static boolean checkObject(Object o, String methodName, int value) {
    return Stream.of(o.getClass().getDeclaredMethods())
            .filter(method -> method.getName().equals(methodName))
            .filter(m -> checkType(m, int.class))
            .map(m -> {
                try {
                    return (int) m.invoke(o);
                } catch (IllegalAccessException | InvocationTargetException e) {
                    e.printStackTrace();
                    return 0;
                }
            }).anyMatch(v -> value == v);
}

private static boolean checkType(Method method, Class type) {
    return method.getReturnType() == type;
}

}

и вы можете проверить это в:

public static void main(String[] args) {
        System.out.println(checkObject(new X(), "valueOf", 2));
    }

Другие вопросы по теме