Я не могу заставить работать примеры из GraalVM javado c для метода public Value asValue(Object hostValue)
Basic Examples: The following assertion statements always hold:
Context context = Context.create();
assert context.asValue(null).isNull();
assert context.asValue(42).isNumber();
assert context.asValue("42").isString();
assert context.asValue('c').isString();
assert context.asValue(new String[0]).hasArrayElements();
assert context.asValue(new ArrayList<>()).isHostObject();
assert context.asValue(new ArrayList<>()).hasArrayElements();
assert context.asValue((Supplier) () -> 42).execute().asInt() == 42;
, поскольку некоторые утверждения не выполнены (hasArrayElements()
и Functional Interface
):
Мой java класс:
$ cat Test.java
import java.util.ArrayList;
import java.util.function.Supplier;
import org.graalvm.polyglot.Context;
import org.graalvm.polyglot.Value;
public class Test {
public static void main( String[] args ) {
try ( Context context = Context.create() ) {
assert context.asValue(null).isNull();
assert context.asValue(42).isNumber();
assert context.asValue("42").isString();
assert context.asValue('c').isString();
assert context.asValue(new String[0]).hasArrayElements() : "String[].hasArrayElements() failed";
assert context.asValue(new ArrayList<>()).isHostObject();
assert context.asValue(new ArrayList<>()).hasArrayElements();
assert context.asValue((Supplier) () -> 42).execute().asInt() == 42;
}
}
}
результат:
$ /opt/graalvm-ce-java11-20.0.0/bin/javac Test.java; /opt/graalvm-ce-java11-20.0.0/bin/java -ea Test
Exception in thread "main" java.lang.AssertionError: String[].hasArrayElements() failed
at Test.main(Test.java:14)
Что я делаю не так? ..