跳到主內容

FFI 類子型別

類 '{0}' 不能擴充套件 '{1}'。

類 '{0}' 不能實現 '{1}'。

類 '{0}' 不能混入 '{1}'。

描述

#

當類擴充套件 StructUnion 以外的任何 FFI 類,或實現或混入任何 FFI 類時,分析器會生成此診斷。StructUnion 是唯一可以被子型別化的 FFI 類,且只能透過擴充套件它們來實現子型別化。

有關 FFI 的更多資訊,請參閱 使用 dart:ffi 進行 C 互操作

示例

#

以下程式碼會生成此診斷,因為類 C 擴充套件了 Double

dart
import 'dart:ffi';

final class C extends Double {}

常見修復

#

如果該類應該擴充套件 StructUnion,則修改該類的宣告

dart
import 'dart:ffi';

final class C extends Struct {
  @Int32()
  external int i;
}

如果該類不應擴充套件 StructUnion,則刪除對所有 FFI 類的引用

dart
final class C {}