Я хочу найти объект. Есть только один объект с переменной x = 10. Является ли это возможным? Надеюсь, вы поняли то, что я пытаюсь объяснить ... :)
if (any object of the class X .getValue() == 10)
...
Класс X
public int getValue(){
return x;
}
В вашей программе вам нужно как-то хранить экземпляры класса X. Чтобы ответить на ваш вопрос, вам нужно сообщить нам, какую структуру данных вы используете для хранения этих экземпляров X




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,
Ракеш
Фактически код не был отформатирован, из-за чего <X> был скрыт.
Что-то вроде:
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));
}
Вы хотите найти его откуда? список, база данных и т. д.? пожалуйста, опубликуйте еще немного своего кода для ясности.