芭蕾舞女演员 Java Cast 异常

问题描述

我正在运行 Java 支持 learning page代码,并在我尝试构建它时遇到异常。以下是我所做的步骤:

  1. 生成绑定:
ballerina bindgen -o src/test java.io.FileInputStream java.io.InputStream --public
  1. 复制示例代码
import ballerina/java;

type FileInputStreamTypedesc typedesc<FileInputStream>;
function test(){
    InputStream inputStream = check newFileInputStream3("sample.txt");
    FileInputStream fileInputStream = <FileInputStream>check java:cast(inputStream,FileInputStreamTypedesc);
}
  1. 构建
ballerina build test

Compiling source
        acme/test:0.0.1
error: acme/test:0.0.1::main.bal:7:85: incompatible types: expected 'typedesc<ballerina/java:JObject>',found 'typedesc<typedesc<acme/test:0.0.1:FileInputStream>>'

使用过的版本:

  • jBallerina 1.2.13
  • 语言规范 2020R1
  • 更新工具 0.8.10

提前感谢您的帮助!

解决方法

您提到的 learn 页面适用于 Ballerina Swan Lake 版本。但是,无论如何,对于 1.2.x version 学习页面,似乎也有相同的内容并且是不正确的。

目前,您可以将 Ballerina 更新到 Swan Lake 版本(无论如何都是最新的); here 提到了这样做的方法。之后,您就可以成功执行上述代码了。

干杯, 安佳娜。