Size: a a a

Чат "Программист"

2020 February 11

ИП

Ингибитор Палладиум in Чат "Программист"
Я знаю как получить расширение файла, но я не знаю с каким расширением будет работать подгруженный десериализатор.
источник

SK

Stas Khavruk in Чат "Программист"
Ингибитор Палладиум
Вот этот вставить.
Ток щас заметил что тут getExtension(null) пздц. Он сам из себя возращает?
источник

ИП

Ингибитор Палладиум in Чат "Программист"
Stas Khavruk
Ток щас заметил что тут getExtension(null) пздц. Он сам из себя возращает?
Первый аргумент — объект, от которого вызывать метод. В случае null, вызывается static метод.
источник

ИП

Ингибитор Палладиум in Чат "Программист"
Вернее даже не так. Т.к. метод static, то абсолютно неважно от какого объекта я его вызываю.
источник

SK

Stas Khavruk in Чат "Программист"
Ингибитор Палладиум
Вот этот вставить.
public <T> invokeParentStaticMethod(string methodName);

где T возращаемый тип, и поправить код в трае:

return (T)m.invoke(null);

Как-то так, если Жабовские дженерики позволяют. В ином случае хардкодим метод получения екстеншина:

public String getExtensionByParentStaticMethod();
источник

SK

Stas Khavruk in Чат "Программист"
Мы же о названии метода для этого куска говорили, не так ли?
источник

ИП

Ингибитор Палладиум in Чат "Программист"
Stas Khavruk
Мы же о названии метода для этого куска говорили, не так ли?
Практически. Т.е. использовать в качестве сигнатуры метода String (void), а название getSmth, после чего вызвать его в конструторе.
источник

SK

Stas Khavruk in Чат "Программист"
Ингибитор Палладиум
Практически. Т.е. использовать в качестве сигнатуры метода String (void), а название getSmth, после чего вызвать его в конструторе.
Ну в даном куске ты больше получаешь статический метод, чем результат... Раздели на две функции: getParentStaticMethod(string methodName) который вернет метод, а в коде уже сам метод вызвешь. Тогда функция будет делать 1 дело, а не два сразу (получение метода, а не получение, вызов и возрат значения)
источник

SK

Stas Khavruk in Чат "Программист"
Хотя твой код, и тебе решать
источник

SK

Stas Khavruk in Чат "Программист"
Я бы сделал метод для получения метода (тофталогия какая), вызвал полученный метод, и кастанул значение в нужный тип.
источник

SK

Stas Khavruk in Чат "Программист"
var myMethod = getStaticMethod("myMethod");
String ext = (String)myMethod.invoke(null);
источник

ИП

Ингибитор Палладиум in Чат "Программист"
Stas Khavruk
Я бы сделал метод для получения метода (тофталогия какая), вызвал полученный метод, и кастанул значение в нужный тип.
Чтобы убрать лишние оборачивания в try-catch внутри конструктора, я всё таки сделал метод, который получает и вызывает метод. Хотя если появится ещё хотя бы одно-два места, где потребуется получать методы, я вынесу это всё в отдельный класс.
источник

ИП

Ингибитор Палладиум in Чат "Программист"
В итоге это private String getFileExtension().
источник

SK

Stas Khavruk in Чат "Программист"
Ингибитор Палладиум
Чтобы убрать лишние оборачивания в try-catch внутри конструктора, я всё таки сделал метод, который получает и вызывает метод. Хотя если появится ещё хотя бы одно-два места, где потребуется получать методы, я вынесу это всё в отдельный класс.
Звучит как еще один метод tryInvokeMethod(MethodType method); 🌚
источник

ИП

Ингибитор Палладиум in Чат "Программист"
Stas Khavruk
Звучит как еще один метод tryInvokeMethod(MethodType method); 🌚
Для него ещё понадобится <T> callMethodOrDefault(Method m, T default1)
источник

TH

Tomas Holshtein in Чат "Программист"
Нихрена не понял, но очень интересно
источник

Б

Брахма in Чат "Программист"
Tomas Holshtein
Нихрена не понял, но очень интересно
Инкрементирую
источник

СК

Серверный Кит in Чат "Программист"
Дмитрий Никитин
Его каналу несколько лет. Он собрал основную аудиторию. Сейчас его прибавка в несколько раз медленнее. И вот, что то мне подсказывает, что еще 300000 это очень много
возможно, я недавно если так полагать узнал об этой хуйне
источник

СК

Серверный Кит in Чат "Программист"
источник

J

JS-printer repairman aka mish in Чат "Программист"
Тыкто
источник