From 1cfe654e926d49989b5a5bbeb1cf6b46df9491e4 Mon Sep 17 00:00:00 2001 From: Victor Date: Fri, 4 Oct 2019 22:16:29 +0300 Subject: [PATCH] =?UTF-8?q?=D0=91=D0=BE=D0=BB=D0=B5=D0=B5=20=D0=B8=D0=BD?= =?UTF-8?q?=D1=84=D0=BE=D1=80=D0=BC=D0=B0=D1=82=D0=B8=D0=B2=D0=BD=D1=8B?= =?UTF-8?q?=D0=B5=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D0=B8=20=D0=B2=20=D0=BC?= =?UTF-8?q?=D0=BE=D0=B4=D1=83=D0=BB=D0=B5=20java?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../annimon/ownlang/modules/java/java.java | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/annimon/ownlang/modules/java/java.java b/src/main/java/com/annimon/ownlang/modules/java/java.java index 890f89b..398c90e 100644 --- a/src/main/java/com/annimon/ownlang/modules/java/java.java +++ b/src/main/java/com/annimon/ownlang/modules/java/java.java @@ -153,7 +153,7 @@ public final class java implements Module { set("cast", new FunctionValue(this::cast)); } - private Value asSubclass(Value... args) { + private Value asSubclass(Value[] args) { Arguments.check(1, args.length); return new ClassValue(clazz.asSubclass( ((ClassValue)args[0]).clazz )); } @@ -208,7 +208,7 @@ public final class java implements Module { @Override public boolean containsKey(Value key) { - return getValue(object.getClass(), object, key.asString()) != null; + return get(key) != null; } @Override @@ -228,7 +228,7 @@ public final class java implements Module { } // - private Value isNull(Value... args) { + private Value isNull(Value[] args) { Arguments.checkAtLeast(1, args.length); for (Value arg : args) { if (arg.raw() == null) return NumberValue.ONE; @@ -236,24 +236,24 @@ public final class java implements Module { return NumberValue.ZERO; } - private Value newClass(Value... args) { + private Value newClass(Value[] args) { Arguments.check(1, args.length); final String className = args[0].asString(); try { return new ClassValue(Class.forName(className)); } catch (ClassNotFoundException ce) { - return NULL; + throw new RuntimeException("Class " + className + " not found.", ce); } } - private Value toObject(Value... args) { + private Value toObject(Value[] args) { Arguments.check(1, args.length); if (args[0] == NULL) return NULL; return new ObjectValue(valueToObject(args[0])); } - private Value toValue(Value... args) { + private Value toValue(Value[] args) { Arguments.check(1, args.length); if (args[0] instanceof ObjectValue) { return objectToValue( ((ObjectValue) args[0]).object ); @@ -305,7 +305,8 @@ public final class java implements Module { // skip } } - return null; + throw new RuntimeException("Constructor for " + args.length + " arguments" + + " not found or non accessible"); } private static Function methodsToFunction(Object object, List methods) { @@ -323,7 +324,9 @@ public final class java implements Module { // skip } } - return null; + final String className = (object == null ? "null" : object.getClass().getName()); + throw new RuntimeException("Method for " + args.length + " arguments" + + " not found or non accessible in " + className); }; }