Просмотрено
Категория: Java

Получение всех методов класса и их выполнение

Получение всех методов класса и их выполнение

1234567Class c = person.getClass(); Method[] methods = c.getDeclaredMethods(); //Получаем массив объявленных методов класса person try {     methods[0].invoke(person, null); //Выполняем первый попавшийся метод } catch (IllegalAccessException | InvocationTargetException e) {     e.printStackTrace(); } Более подробно расписано здесь (http://java-online.ru/java-reflection.xhtml). Вызов метода с параметрами: 12345Class aclass = obj.getClass(); Class[] paramTypes = new Class[] { String.class, int.class }; Method method = aclass.getMethod("getCalculateRating", paramTypes); Object[] args = new Object[] { new String("First Calculate"), new Integer(10) }; Double d = (Double) method.invoke(obj, args);…

Читать далее Читать далее

Создание объекта класса по его имени

Создание объекта класса по его имени

В общем виде это выглядет так (http://java-online.ru/java-reflection.xhtml): 123Class aclass = Class.forName("Test"); Object obj = aclass.newInstance(); Test test = (Test) obj; Пример: файл Person.java с объявлением интерфейса, в котором содержатся классы: 123456789package com.javarush.task.task14.task1411; public interface Person {     class User implements Person {         void foo() { System.out.println("Something"); }     }     class Coder implements Person {         void foo() { System.out.println("Something"); }     } } фрагмент файла Solution.java, находящийся в…

Читать далее Читать далее

Несколько типов исключений в одном блоке Catch

Несколько типов исключений в одном блоке Catch

123456try{    ///Something } catch (Exception | NoClassDefFoundError e){    System.out.println(e); } Здесь в одном блоке Catch мы отлавливаем исключения двух типов. Замечу, что NoClassDefFoundError не является наследником класса Exception.

Изменение регистра. Сделать первую букву строки заглавной.

Изменение регистра. Сделать первую букву строки заглавной.

1234public static String firstUpperCase(String string){         if (string == null || string.isEmpty()) return "";         return string.substring(0, 1).toUpperCase() + string.substring(1).toLowerCase();     }