, но в соответствии с этим: http://www.php.net/manual /en/function.json-encode.php#94157 не будет.
Я использую flot, поэтому мне нужно вернуть массив с числовыми индексами, но я получаю следующее:
jsonp1282668482872 ( {"label":"Hits 2010-08-20","data":{"1281830400":34910,"1281916800":45385,"1282003200":56928,"1282089600":53884,"1282176000":50262,"1281657600":45446,"1281744000":34998}} );
, так что flot задыхается. Если я var_dump массив прямо перед вызовом json_encode, он выглядит следующим образом: } И похожий класс Java: открытый класс C {public static String message () {...
У меня есть следующий код Scala (2.8):
object A {
val message = "hello"
object B {
val message = "world"
}
}
И похожий класс Java:
public class C {
public static String message() {
return "HELLO";
}
public static class D {
public static String message() {
return "WORLD";
}
}
}
Они работают как я ожидаю, когда я вызываю их из Scala:
scala> A.message
res0: java.lang.String = hello
scala> A.B.message
res1: java.lang.String = world
scala> C.message
res2: java.lang.String = HELLO
scala> C.D.message
res3: java.lang.String = WORLD
Но когда я пробую что-то похожее из Java, компилятору не нравится вторая строка:
System.out.println(A.message());
System.out.println(A.B.message()); // cannot find ... symbol : variable B ...
System.out.println(C.message());
System.out.println(C.D.message());
Понятно, почему это так, когда я смотрю на файлы классов с javap
. Я знаю, что вместо этого могу использовать
System.out.println(A$B$.MODULE$.message());
или добавить что-то вроде val getB = B
к моему объекту A
и заменить вторую строку на
System.out.println(A.getB().message());
. Есть ли стандартный способ использования вложенные одноэлементные объекты Scala из кода Java?
Я мало что знаю о Scala, но, учитывая то, как Scala компилируется в байт-код, я думаю, что вы указали единственные два варианта, которые у вас есть.