跳到主要內容

empty_struct

類 '{0}' 不能是空的,因為它繼承自 '{1}'。

描述

#

StructUnion 的子類沒有任何欄位時,分析器會產生此診斷。不支援空的 StructUnion

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

示例

#

以下程式碼會產生此診斷,因為類 C 繼承自 Struct,但未宣告任何欄位

dart
import 'dart:ffi';

final class C extends Struct {}

常見修復方法

#

如果該類旨在用作結構體,則宣告一個或多個欄位

dart
import 'dart:ffi';

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

如果該類旨在用作 Pointer 的型別引數,則使其成為 Opaque 的子類

dart
import 'dart:ffi';

final class C extends Opaque {}

如果該類並非旨在用作結構體,則刪除或修改 extends 子句

dart
class C {}