Архив категории ‘Java’

Определить, содержит ли переданный объект определенный метод

12345678910111213141516171819202122232425import java.lang.reflect.Method; public class test {     public static class Cat{         void say(String word){             System.out.println("Cat says: " + word);         }     }     public static void main(String[] args) {         Cat cat = new Cat(); […]

Как отправить email из программы Java

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354import javax.mail.*; import javax.mail.internet.*; import java.util.Properties; public class test {     public static void main(String[] args) {         //Отправить E-Mail         //Скачать javamail api (javax.mail.jar) отсюда http://www.oracle.com/technetwork/java/javamail/index.html         //В Intellij IDEA в меню File->Project Structure…->Libraries нажать плюсик и добавить этот файл к проекту     […]

Как отсортировать список строк в обратном алфавитном порядке

1234567891011121314151617import java.util.Arrays; import java.util.Comparator; public class test {     static class MyComparator implements Comparator<String> {         public int compare(String strA, String strB) {             return strB.compareTo(strA);         }     }     public static void main(String[] args) {         […]

Правила сериализации

При сериализации автоматически не сериализуются: — transient переменные — static переменные — унаследованные переменные (они будут инициализированы с помощью конструктора родительского класса без параметров). Все это можно разными способами сериализовать врукопашную (externalizable). Для сериализации объектов внутренних нестатических классов, внешние классы должны быть сериализуемыми. Да, чтобы немного дополнить алгоритм стандартной сериализации/десериализации, используют два метода: 1234567891011121314151617181920public class […]

Получить имя пакета класса

1MyClass.class.getPackage().getName() 1

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

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, […]

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

В общем виде это выглядет так (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"); }     } […]

Материалы по рефлексии

http://java-online.ru/java-reflection.xhtml

Несколько типов исключений в одном блоке 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();     }