FFI 类子类型
类 '{0}' 不能扩展 '{1}'。
类 '{0}' 不能实现 '{1}'。
类 '{0}' 不能混入 '{1}'。
描述
#当类扩展 Struct
或 Union
以外的任何 FFI 类,或实现或混入任何 FFI 类时,分析器会生成此诊断。Struct
和 Union
是唯一可以被子类型化的 FFI 类,且只能通过扩展它们来实现子类型化。
有关 FFI 的更多信息,请参阅 使用 dart:ffi 进行 C 互操作。
示例
#以下代码会生成此诊断,因为类 C
扩展了 Double
dart
import 'dart:ffi';
final class C extends Double {}
常见修复
#如果该类应该扩展 Struct
或 Union
,则修改该类的声明
dart
import 'dart:ffi';
final class C extends Struct {
@Int32()
external int i;
}
如果该类不应扩展 Struct
或 Union
,则删除对所有 FFI 类的引用
dart
final class C {}