Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
scala> class Test { def test_=(s: String) = printf(s)}
defined class Test
scala> new Test test_= "qq"
public static void main(...){
Method m = Class.forName("Test").getMethod("test_=");
}
package test
class Test {
def test_=(s: String) = println(s)
}
package test;
import java.lang.reflect.Method;
public class Main {
public static void main(String[] args) throws Exception {
Method m = Class.forName("test.Test").getMethod("test_$eq", String.class);
m.invoke(new Test(), new Object[] {"scala"});
}
}
package test;
public class Main {
public static void main(String[] args) throws Exception {
new Test() {
public void callScala(String s) {
test_$eq(s);
}
}.callScala("java");
}
}
Причин тому много, основная — всё нарастающее со временем чувство неудобства при работе с cpp-подобными языками. Взгляд мой попеременно падал на Ruby, Groovy, Python, но все они оставляли впечатление инструментов, не совсем подходящих для моего обычного круга рабочих задач (Python-таки хорош, но у нетипизированных языков есть свои ограничения). Scala же, напротив, показалась вполне годным языком.Значит у Вас были задачи, которые императивными языками решались плохо, а на функциональном решались легко и органично. Собственно про эти задачи и хотелось почитать.
Scala. Введение