objectbox-dart 中的 Convert 注解在哪里?
Where is the Convert annotation in objectbox-dart?
对于此代码
@Convert(converter = PointConverter, dbType = String)
Point? origo;
我明白了
Undefined name 'Convert' used as an annotation.
Try defining the name or importing it from another library.dart(undefined_annotation)
linter 错误消息。 objectbox-dart中没有object convert方法吗?
没有像 ObjectBox-Java 中那样的 @Convert
注释。在 Dart 中,您可以使用 dart getter 和 setter 在线定义转换器。例如,像这样的东西应该创建一个字符串数据库字段 dbPoint
,同时跳过 point
,因为它具有未知类型。
import 'dart:math';
import 'package:objectbox/objectbox.dart';
@Entity()
class SomeClass {
int? id;
Point<double>? point;
String? get dbPoint => point == null ? null : '${point.x} ${point.y}';
set dbPoint(String? value) {
if (value == null) {
point = null;
} else {
final components = value.split(' ');
if (components.length != 2) {
throw ArgumentError.value(value, 'value', "Given value doesn't look like a point representation");
}
point = Point(double.parse(components[0]), double.parse(components[1]));
}
}
}
当然,这只是一个示例,您可以使用任何您想要的转换,转换为 ObjectBox 支持的任何类型。例如。如果将上面的代码转换为二进制向量 (Uint8List
).
会更有效率
对于此代码
@Convert(converter = PointConverter, dbType = String)
Point? origo;
我明白了
Undefined name 'Convert' used as an annotation. Try defining the name or importing it from another library.dart(undefined_annotation)
linter 错误消息。 objectbox-dart中没有object convert方法吗?
没有像 ObjectBox-Java 中那样的 @Convert
注释。在 Dart 中,您可以使用 dart getter 和 setter 在线定义转换器。例如,像这样的东西应该创建一个字符串数据库字段 dbPoint
,同时跳过 point
,因为它具有未知类型。
import 'dart:math';
import 'package:objectbox/objectbox.dart';
@Entity()
class SomeClass {
int? id;
Point<double>? point;
String? get dbPoint => point == null ? null : '${point.x} ${point.y}';
set dbPoint(String? value) {
if (value == null) {
point = null;
} else {
final components = value.split(' ');
if (components.length != 2) {
throw ArgumentError.value(value, 'value', "Given value doesn't look like a point representation");
}
point = Point(double.parse(components[0]), double.parse(components[1]));
}
}
}
当然,这只是一个示例,您可以使用任何您想要的转换,转换为 ObjectBox 支持的任何类型。例如。如果将上面的代码转换为二进制向量 (Uint8List
).