Сообщение Re: Шаблонный код в Java/Kotlin - возможно ли? от 05.12.2023 6:13
Изменено 05.12.2023 6:19 Worminator X
Re: Шаблонный код в Java/Kotlin - возможно ли?
Здравствуйте, rus blood, Вы писали:
RB>Коллеги, всем привет!
RB>Пишу на котлин, и возникла такая ситуация.
RB>Есть набор разных классов (можно считать, data-классов), одинаковых по структуре, т.е. у них часть полей одинаковы по названиям и типам.
RB>Нужно с объектами этих классов делать однотипные действия с "общими" полями.
RB>На плюсах я бы сделал это шаблонными функциями.
RB>Есть ли аналог шаблонных функций в котлине?
В базовой Java есть шаблонные функции:
Но архитектурно правильно, как уже сказали, создавать специальный класс-адаптер.
В Scala для шаблонных функций есть trait'ы, имеются ли они в Kotlin, не знаю.
RB>Коллеги, всем привет!
RB>Пишу на котлин, и возникла такая ситуация.
RB>Есть набор разных классов (можно считать, data-классов), одинаковых по структуре, т.е. у них часть полей одинаковы по названиям и типам.
RB>Нужно с объектами этих классов делать однотипные действия с "общими" полями.
RB>На плюсах я бы сделал это шаблонными функциями.
RB>Есть ли аналог шаблонных функций в котлине?
В базовой Java есть шаблонные функции:
import java.lang.reflect.Field;
public class Program {
static <T> void printValue(T t) throws Exception {
final Field field = t.getClass().getDeclaredField("value");
final String value = (String)field.get(t);
System.out.println(value);
}
static class A {
public String value;
}
static class B {
public String value;
}
public static void main() {
final A a = new A();
a.value = "A";
final B b = new B();
b.value = "B";
try {
printValue(a);
printValue(b);
} catch (Exception ex) {
System.err.println(ex.getMessage());
}
}
}
Но архитектурно правильно, как уже сказали, создавать специальный класс-адаптер.
В Scala для шаблонных функций есть trait'ы, имеются ли они в Kotlin, не знаю.
Re: Шаблонный код в Java/Kotlin - возможно ли?
Здравствуйте, rus blood, Вы писали:
RB>Коллеги, всем привет!
RB>Пишу на котлин, и возникла такая ситуация.
RB>Есть набор разных классов (можно считать, data-классов), одинаковых по структуре, т.е. у них часть полей одинаковы по названиям и типам.
RB>Нужно с объектами этих классов делать однотипные действия с "общими" полями.
RB>На плюсах я бы сделал это шаблонными функциями.
RB>Есть ли аналог шаблонных функций в котлине?
В базовой Java есть шаблонные функции:
Но архитектурно правильно, как уже сказали, создавать специальный класс-адаптер.
В Scala для шаблонных функций есть trait'ы, имеются ли они в Kotlin, не знаю.
RB>Коллеги, всем привет!
RB>Пишу на котлин, и возникла такая ситуация.
RB>Есть набор разных классов (можно считать, data-классов), одинаковых по структуре, т.е. у них часть полей одинаковы по названиям и типам.
RB>Нужно с объектами этих классов делать однотипные действия с "общими" полями.
RB>На плюсах я бы сделал это шаблонными функциями.
RB>Есть ли аналог шаблонных функций в котлине?
В базовой Java есть шаблонные функции:
import java.lang.reflect.Field;
public class Program {
static <T> void printValue(T t) throws Exception {
final Field field = t.getClass().getDeclaredField("value");
final String value = (String)field.get(t);
System.out.println(value);
}
static class A {
public String value;
}
static class B {
public String value;
}
public static void main(String[] args) {
final A a = new A();
a.value = "A";
final B b = new B();
b.value = "B";
try {
printValue(a);
printValue(b);
} catch (Exception ex) {
System.err.println(ex.getMessage());
}
}
}
Но архитектурно правильно, как уже сказали, создавать специальный класс-адаптер.
В Scala для шаблонных функций есть trait'ы, имеются ли они в Kotlin, не знаю.