====== Пример работы с ромбами (class Box) ====== Взято из [[https://docs.oracle.com/javase/tutorial/java/generics/types.html#diamond|Java/Generics/Types]] class Box { private T value; public void set(T val) { this.value = val; } public T get() { return this.value; } } // Как использовать? Box di = new Box<>(); di.set(400); System.out.println(di.get()); Что касаемо отдельных функций, то их дефинируют так. Бонусом записался пример как конвертировать инты разных видов, но сразу скажу что так лучше не делать! В таких вариантах можно использовать перегрузку операторов, и решить задачу гораздо проще. class MyClass { public static T add(T a, T b) throws NumberFormatException { if (a instanceof Integer) { return (T)(Number)( ((Number) a).intValue() + ((Number) b).intValue() ); } else if (a instanceof Long) { return (T)(Long)( ((Number) a).longValue() + ((Number) b).longValue() ); } else if (a instanceof Double) { return (T)(Number)( ((Number) a).doubleValue() + ((Number) b).doubleValue() ); } else if (a instanceof Float) { return (T)(Number)( ((Number) a).floatValue() + ((Number) b).floatValue() ); } throw new NumberFormatException("That type of Number, is not yet supported"); } public static void main(String args[]) { int x=10; int y=25; int z = MyClass.add( Long.valueOf(x), Long.valueOf(y)).intValue(); // int z = x + y; System.out.println("Sum of x+y = " + z); } }