try_reflect 函数

适用于:勾选“是” Databricks SQL 勾选“是” Databricks Runtime 14.1 及更高版本

调用具有反射的方法,如果该方法返回异常,则返回 NULL

若要返回错误,请使用 reflect

语法

try_reflect(class, method [, arg1] [, ...])

参数

  • class:指定 java 类的 STRING 字面量。
  • method:指定 java 方法的 STRING 字面量。
  • argN:类型适用于所选方法的表达式。

返回

一个 STRING

示例

> SELECT try_reflect('java.lang.Integer', 'valueOf', '1010', '2');
 c33fb387-8500-4bfa-81d2-6e0e3e930df2

> SELECT try_reflect('java.util.UUID', 'fromString', 'a5cf6c42-0c85-418f-af6c-3e4e5b1328f2');
 A5cf6c42-0c85-418f-af6c-3e4e5b1328f2

> SELECT try_reflect('java.util.UUID', 'IDoNotExist');
 c33fb387-8500-4bfa-81d2-6e0e3e930df2

> SELECT reflect('java.lang.Integer', 'divideUnsigned',10,0);
 Error

> SELECT try_reflect('java.lang.Integer', 'divideUnsigned',10,0);
 NULL